Skip to content

Commit 2ed4800

Browse files
committed
Merge pull request #11 from sfsheng0322/master
add StickyHeaderListView
2 parents 033cc8a + 539c877 commit 2ed4800

File tree

110 files changed

+5107
-372
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+5107
-372
lines changed

.gitignore

+47-47
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
1-
# built application files
2-
# *.apk
3-
*.ap_
4-
lint.xml
5-
6-
# files for the dex VM
7-
*.dex
8-
9-
# Java class files
10-
*.class
11-
12-
# generated files
13-
bin/
14-
gen/
15-
16-
# maven
17-
target/
18-
19-
# Local configuration file (sdk path, etc)
20-
local.properties
21-
22-
# Windows thumbnail db
23-
Thumbs.db
24-
25-
# OSX files
26-
.DS_Store
27-
28-
# Eclipse project files
29-
.classpath
30-
.project
31-
.settings
32-
33-
# Android Studio
34-
.idea
35-
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
36-
build/
37-
.gradle
38-
39-
# Proguard folder generated by Eclipse
40-
proguard/
41-
42-
# Log Files
43-
*.log
44-
45-
# Other
46-
.svn
47-
1+
# built application files
2+
# *.apk
3+
*.ap_
4+
lint.xml
5+
6+
# files for the dex VM
7+
*.dex
8+
9+
# Java class files
10+
*.class
11+
12+
# generated files
13+
bin/
14+
gen/
15+
16+
# maven
17+
target/
18+
19+
# Local configuration file (sdk path, etc)
20+
local.properties
21+
22+
# Windows thumbnail db
23+
Thumbs.db
24+
25+
# OSX files
26+
.DS_Store
27+
28+
# Eclipse project files
29+
.classpath
30+
.project
31+
.settings
32+
33+
# Android Studio
34+
.idea
35+
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
36+
build/
37+
.gradle
38+
39+
# Proguard folder generated by Eclipse
40+
proguard/
41+
42+
# Log Files
43+
*.log
44+
45+
# Other
46+
.svn
47+

common/codeformat.xml

+291-291
Large diffs are not rendered by default.

common/codetemplates.xml

+33-33
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
1-
<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**
2-
* @return the ${bare_field_name}
3-
*/</template><template autoinsert="true" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**
4-
* @param ${param} the ${bare_field_name} to set
5-
*/</template><template autoinsert="true" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**
6-
* ${tags}
7-
*/</template><template autoinsert="true" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment">/**
8-
*
9-
*/</template><template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**
10-
* @author ${user}
11-
*
12-
* ${tags}
13-
*/</template><template autoinsert="true" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**
14-
*
15-
*/</template><template autoinsert="true" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment">/**
16-
* ${tags}
17-
*/</template><template autoinsert="true" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/* (non-Javadoc)
18-
* ${see_to_overridden}
19-
*/</template><template autoinsert="true" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**
20-
* ${tags}
21-
* ${see_to_target}
22-
*/</template><template autoinsert="true" context="newtype_context" deleted="false" description="Newly created files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.newtype" name="newtype">${filecomment}
23-
${package_declaration}
24-
25-
${typecomment}
26-
${type_declaration}</template><template autoinsert="true" context="classbody_context" deleted="false" description="Code in new class type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.classbody" name="classbody">
27-
</template><template autoinsert="true" context="interfacebody_context" deleted="false" description="Code in new interface type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name="interfacebody">
28-
</template><template autoinsert="true" context="enumbody_context" deleted="false" description="Code in new enum type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.enumbody" name="enumbody">
29-
</template><template autoinsert="true" context="annotationbody_context" deleted="false" description="Code in new annotation type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name="annotationbody">
30-
</template><template autoinsert="true" context="catchblock_context" deleted="false" description="Code in new catch blocks" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.catchblock" name="catchblock">// ${todo} Auto-generated catch block
31-
${exception_var}.printStackTrace();</template><template autoinsert="true" context="methodbody_context" deleted="false" description="Code in created method stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodbody" name="methodbody">// ${todo} Auto-generated method stub
32-
${body_statement}</template><template autoinsert="true" context="constructorbody_context" deleted="false" description="Code in created constructor stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name="constructorbody">${body_statement}
33-
// ${todo} Auto-generated constructor stub</template><template autoinsert="true" context="getterbody_context" deleted="false" description="Code in created getters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.getterbody" name="getterbody">return ${field};</template><template autoinsert="true" context="setterbody_context" deleted="false" description="Code in created setters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.setterbody" name="setterbody">${field} = ${param};</template></templates>
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="gettercomment_context" deleted="false" description="Comment for getter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name="gettercomment">/**
2+
* @return the ${bare_field_name}
3+
*/</template><template autoinsert="true" context="settercomment_context" deleted="false" description="Comment for setter method" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.settercomment" name="settercomment">/**
4+
* @param ${param} the ${bare_field_name} to set
5+
*/</template><template autoinsert="true" context="constructorcomment_context" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name="constructorcomment">/**
6+
* ${tags}
7+
*/</template><template autoinsert="true" context="filecomment_context" deleted="false" description="Comment for created Java files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.filecomment" name="filecomment">/**
8+
*
9+
*/</template><template autoinsert="false" context="typecomment_context" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.typecomment" name="typecomment">/**
10+
* @author ${user}
11+
*
12+
* ${tags}
13+
*/</template><template autoinsert="true" context="fieldcomment_context" deleted="false" description="Comment for fields" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name="fieldcomment">/**
14+
*
15+
*/</template><template autoinsert="true" context="methodcomment_context" deleted="false" description="Comment for non-overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name="methodcomment">/**
16+
* ${tags}
17+
*/</template><template autoinsert="true" context="overridecomment_context" deleted="false" description="Comment for overriding methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name="overridecomment">/* (non-Javadoc)
18+
* ${see_to_overridden}
19+
*/</template><template autoinsert="true" context="delegatecomment_context" deleted="false" description="Comment for delegate methods" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name="delegatecomment">/**
20+
* ${tags}
21+
* ${see_to_target}
22+
*/</template><template autoinsert="true" context="newtype_context" deleted="false" description="Newly created files" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.newtype" name="newtype">${filecomment}
23+
${package_declaration}
24+
25+
${typecomment}
26+
${type_declaration}</template><template autoinsert="true" context="classbody_context" deleted="false" description="Code in new class type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.classbody" name="classbody">
27+
</template><template autoinsert="true" context="interfacebody_context" deleted="false" description="Code in new interface type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name="interfacebody">
28+
</template><template autoinsert="true" context="enumbody_context" deleted="false" description="Code in new enum type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.enumbody" name="enumbody">
29+
</template><template autoinsert="true" context="annotationbody_context" deleted="false" description="Code in new annotation type bodies" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name="annotationbody">
30+
</template><template autoinsert="true" context="catchblock_context" deleted="false" description="Code in new catch blocks" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.catchblock" name="catchblock">// ${todo} Auto-generated catch block
31+
${exception_var}.printStackTrace();</template><template autoinsert="true" context="methodbody_context" deleted="false" description="Code in created method stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.methodbody" name="methodbody">// ${todo} Auto-generated method stub
32+
${body_statement}</template><template autoinsert="true" context="constructorbody_context" deleted="false" description="Code in created constructor stubs" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name="constructorbody">${body_statement}
33+
// ${todo} Auto-generated constructor stub</template><template autoinsert="true" context="getterbody_context" deleted="false" description="Code in created getters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.getterbody" name="getterbody">return ${field};</template><template autoinsert="true" context="setterbody_context" deleted="false" description="Code in created setters" enabled="true" id="org.eclipse.jdt.ui.text.codetemplates.setterbody" name="setterbody">${field} = ${param};</template></templates>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.gradle
2+
/local.properties
3+
/build
4+
/.idea
5+
/*.iml
6+
/app/build
7+
/app/*.iml
8+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
2+
## StickyHeaderListView
3+
4+
StickyHeaderListView 是基于实际需求做出的灵活可定制的UI功能,具体实现功能如下:<br/>
5+
一、支持无限循环的广告位。<br/>
6+
二、高度可动态配置的Header2和Header3(使用GridView实现)。<br/>
7+
三、主要功能:分类、排序和筛选布局滑动到顶部后吸附、悬停。<br/>
8+
四、自定义FilterView筛选控件,支持动画显示与动画隐藏。<br/>
9+
五、支持标题栏背景颜色渐变、字体颜色渐变。<br/>
10+
六、数据不足一屏动态添加空数据占位。<br/>
11+
七、数据为空时,ListView加载暂无数据视图。<br/>
12+
八、思路清晰、界面优美,添加ripple点击效果。<br/>
13+
九、支持下拉刷新和上拉加载更多功能。<br/>
14+
15+
### 动态效果图
16+
17+
<img src="/screenshots/stickyheader.gif" style="width: 30%;"/>
18+
19+
<br/>
20+
21+
<img src="/screenshots/stickyheader2.gif" style="width: 30%;"/>
22+
23+
### 截图
24+
25+
<table>
26+
<tr>
27+
<td><img src="/screenshots/StickyHeaderListView2.png" style="width: 30%;"></td>
28+
<td><img src="/screenshots/StickyHeaderListView3.png" style="width: 30%;"></td>
29+
</tr>
30+
</table>
31+
32+
<br/>
33+
34+
<table>
35+
<tr>
36+
<td><img src="/screenshots/StickyHeaderListView4.png" style="width: 30%;"></td>
37+
<td><img src="/screenshots/StickyHeaderListView5.png" style="width: 30%;"></td>
38+
</tr>
39+
</table>
40+
41+
### [实现思路参考简书文章](http://www.jianshu.com/p/3bf26722c489)
42+
43+
### [APK下载地址](http://fir.im/StickyListView)
44+
45+
### 微信公众号
46+
47+
<img src="/screenshots/微信公众号.jpg" style="width: 30%;">
48+
49+
### 关于我
50+
51+
个人邮箱:[email protected]
52+
53+
[GitHub主页](https://github.com/sfsheng0322)
54+
55+
[简书主页](http://www.jianshu.com/users/88509e7e2ed1/latest_articles)
56+
57+
[个人博客](http://sunfusheng.com/)
58+
59+
[新浪微博](http://weibo.com/u/3852192525)
60+
61+
62+
63+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
apply plugin: 'com.android.application'
2+
3+
android {
4+
compileSdkVersion 23
5+
buildToolsVersion "23.0.2"
6+
7+
defaultConfig {
8+
applicationId "com.sunfusheng.StickyHeaderListView"
9+
minSdkVersion 11
10+
targetSdkVersion 23
11+
versionCode 6
12+
versionName "1.5"
13+
}
14+
15+
buildTypes {
16+
release {
17+
minifyEnabled false
18+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
19+
}
20+
}
21+
}
22+
23+
dependencies {
24+
compile fileTree(dir: 'libs', include: ['*.jar'])
25+
compile 'com.android.support:appcompat-v7:23.3.0'
26+
compile 'com.android.support:design:23.3.0'
27+
compile 'com.android.support:cardview-v7:23.3.0'
28+
29+
// ButterKnife
30+
compile 'com.jakewharton:butterknife:7.0.1'
31+
32+
// Glide
33+
compile 'com.github.bumptech.glide:glide:3.7.0'
34+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Add project specific ProGuard rules here.
2+
# By default, the flags in this file are appended to flags specified
3+
# in /Users/sunfusheng/Android/Studio/sdk/tools/proguard/proguard-android.txt
4+
# You can edit the include path and order by changing the proguardFiles
5+
# directive in build.gradle.
6+
#
7+
# For more details, see
8+
# http://developer.android.com/guide/developing/tools/proguard.html
9+
10+
# Add any project specific keep options here:
11+
12+
# If your project uses WebView with JS, uncomment the following
13+
# and specify the fully qualified class name to the JavaScript interface
14+
# class:
15+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16+
# public *;
17+
#}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest package="com.sunfusheng.StickyHeaderListView"
3+
xmlns:android="http://schemas.android.com/apk/res/android">
4+
5+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
6+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
7+
<uses-permission android:name="android.permission.INTERNET"/>
8+
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
9+
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
10+
<uses-permission android:name="android.permission.READ_LOGS"/>
11+
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
12+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
13+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
14+
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
15+
16+
<application
17+
android:allowBackup="true"
18+
android:icon="@mipmap/ic_launcher"
19+
android:label="@string/app_name"
20+
android:supportsRtl="true"
21+
android:theme="@style/AppTheme">
22+
23+
<activity
24+
android:name=".ui.MainActivity"
25+
android:screenOrientation="portrait">
26+
<intent-filter>
27+
<action android:name="android.intent.action.MAIN"/>
28+
<category android:name="android.intent.category.LAUNCHER"/>
29+
</intent-filter>
30+
</activity>
31+
32+
<activity
33+
android:name=".ui.AboutActivity"
34+
android:screenOrientation="portrait"/>
35+
</application>
36+
37+
</manifest>

0 commit comments

Comments
 (0)