1
1
ViewPagerIndicator
2
2
==================
3
3
4
- ###1 . 支持自定义tab样式
5
- ###2 . 支持自定义滑动块样式和位置
6
- ###3 . 支持自定义切换tab的过渡效果
7
- ###4 . 支持子界面的预加载和界面缓存
8
- ###5 . 支持设置界面是否可滑动
9
- ###6 . android: minSdkVersion ="8" android: targetSdkVersion ="25"
4
+ ### 1. 支持自定义tab样式
5
+ ### 2. 支持自定义滑动块样式和位置
6
+ ### 3. 支持自定义切换tab的过渡效果
7
+ ### 4. 支持子界面的预加载和界面缓存
8
+ ### 5. 支持设置界面是否可滑动
9
+ ### 6. android: minSdkVersion ="8" android: targetSdkVersion ="25"
10
10
11
11
###7 .导入方式
12
- <1>gradle导入
12
+ <1>gradle导入
13
13
14
- compile 'com.shizhefei:ViewPagerIndicator:1.1.5 '
15
- 由于用到了v4和recyclerview所以也要导入他们
16
- compile 'com.android.support:support-v4:23.4.0'
17
- compile 'com.android.support:recyclerview-v7:23.4.0'
18
- <2>jar包方式导入
19
- Download Library [ JAR] ( https://github.com/LuckyJayce/ViewPagerIndicator/releases )
14
+ compile 'com.shizhefei:ViewPagerIndicator:1.1.6 '
15
+ 由于用到了v4和recyclerview所以也要导入他们
16
+ compile 'com.android.support:support-v4:23.4.0'
17
+ compile 'com.android.support:recyclerview-v7:23.4.0'
18
+ <2>jar包方式导入
19
+ Download Library [ JAR] ( https://github.com/LuckyJayce/ViewPagerIndicator/releases )
20
20
21
- Download sample [ Apk] ( https://github.com/LuckyJayce/ViewPagerIndicator/blob/master/raw/ViewPagerIndicator_Demo.apk?raw=true )
21
+ Download sample [ Apk] ( https://github.com/LuckyJayce/ViewPagerIndicator/blob/master/raw/ViewPagerIndicator_Demo.apk?raw=true )
22
22
23
- ###8 .历史版本和更新信息
23
+ ###8 .历史版本和更新信息
24
24
https://github.com/LuckyJayce/ViewPagerIndicator/releases
25
25
26
26
27
27
28
28
29
- # 使用方法 #
29
+ # 使用方法 #
30
30
package com.shizhefei.indicator.guide;
31
-
31
+
32
32
import android.os.Bundle;
33
33
import android.support.v4.app.FragmentActivity;
34
34
import android.support.v4.view.ViewPager;
35
35
import android.view.LayoutInflater;
36
36
import android.view.View;
37
37
import android.view.ViewGroup;
38
38
import android.view.ViewGroup.LayoutParams;
39
-
39
+
40
40
import com.shizhefei.indicator.R;
41
41
import com.shizhefei.view.indicator.Indicator;
42
42
import com.shizhefei.view.indicator.IndicatorViewPager;
43
43
import com.shizhefei.view.indicator.IndicatorViewPager.IndicatorPagerAdapter;
44
44
import com.shizhefei.view.indicator.IndicatorViewPager.IndicatorViewPagerAdapter;
45
-
45
+
46
46
public class GuideActivity extends FragmentActivity {
47
47
private IndicatorViewPager indicatorViewPager;
48
48
private LayoutInflater inflate;
49
-
49
+
50
50
@Override
51
51
protected void onCreate(Bundle arg0) {
52
52
super.onCreate(arg0);
@@ -59,11 +59,11 @@ https://github.com/LuckyJayce/ViewPagerIndicator/releases
59
59
// 设置indicatorViewPager的适配器
60
60
indicatorViewPager.setAdapter(adapter);
61
61
}
62
-
62
+
63
63
private IndicatorPagerAdapter adapter = new IndicatorViewPagerAdapter() {
64
64
private int[] images = { R.drawable.p1, R.drawable.p2, R.drawable.p3,
65
65
R.drawable.p4 };
66
-
66
+
67
67
/**
68
68
* 获取tab
69
69
*/
@@ -76,7 +76,7 @@ https://github.com/LuckyJayce/ViewPagerIndicator/releases
76
76
}
77
77
return convertView;
78
78
}
79
-
79
+
80
80
/**
81
81
* 获取每一个界面
82
82
*/
@@ -91,7 +91,7 @@ https://github.com/LuckyJayce/ViewPagerIndicator/releases
91
91
convertView.setBackgroundResource(images[position]);
92
92
return convertView;
93
93
}
94
-
94
+
95
95
/**
96
96
* 获取界面数量
97
97
*/
@@ -103,42 +103,56 @@ https://github.com/LuckyJayce/ViewPagerIndicator/releases
103
103
}
104
104
105
105
# 效果图 #
106
- 有了该类库你可以实现以下布局
106
+ 有了该类库你可以实现以下布局
107
107
![ image] ( https://github.com/LuckyJayce/ViewPagerIndicator/blob/master/raw/1.png )
108
108
![ image] ( https://github.com/LuckyJayce/ViewPagerIndicator/blob/master/raw/2.png )
109
109
![ image] ( https://github.com/LuckyJayce/ViewPagerIndicator/blob/master/raw/3.png )
110
110
![ image] ( https://github.com/LuckyJayce/ViewPagerIndicator/blob/master/raw/4.png )
111
111
![ image] ( https://github.com/LuckyJayce/ViewPagerIndicator/blob/master/raw/demo.gif )
112
112
# 主要的类 #
113
- ## 1.ViewPager ##
114
- 这个版本以后 android-support-v4 可以用原生的了 没有重写ViewPager。
115
- 原先重写的ViewPager的setPrepareNumber 用 Fragment继承于LazyFragment代替实现懒加载
116
- 原先setCanScroll 转移到了 ViewPager的子类SViewPager上
113
+ ## 1.ViewPager ##
114
+ 这个版本以后 android-support-v4 可以用原生的了 没有重写ViewPager。
115
+ 原先重写的ViewPager的setPrepareNumber 用 Fragment继承于LazyFragment代替实现懒加载
116
+ 原先setCanScroll 转移到了 ViewPager的子类SViewPager上
117
117
118
118
2.使用LazyFragment来配合ViewPager的setOffscreenPageLimit进行懒加载界面和防止重新创建界面**
119
119
120
- ## 2.Indicator ##
120
+ ## 2.Indicator ##
121
121
顾名思义是指示器的意思。有点像水平方向的listview 可以自定义item。
122
-
123
- ** Indicator**
124
- setCurrentItem(int item, boolean anim) 设置当前项
125
- setOnTransitionListener(OnTransitionListener onTransitionListener)设置tab过渡动画
126
- setOnItemSelectListener(OnItemSelectedListener onItemSelectedListener)设置tab切换监听
127
- setScrollBar(ScrollBar scrollBar)设置跟随tab滑动的滑动块
128
-
129
- ** 1.FixedIndicatorView 主要用于固定大小来平均分配tab的情况。**
130
- setSplitMethod(int splitMethod) 设置tab分割方式,平均分割,wrap分割,比重分割
131
- setCenterView(View centerView, ViewGroup.LayoutParams layoutParams)设置显示在tab中心的View,用于实现新浪微博底部+号
122
+
123
+ ** Indicator**
124
+ setCurrentItem(int item, boolean anim) 设置当前项
125
+ setOnTransitionListener(OnTransitionListener onTransitionListener)设置tab过渡动画
126
+ setOnItemSelectListener(OnItemSelectedListener onItemSelectedListener)设置tab切换监听
127
+ setScrollBar(ScrollBar scrollBar)设置跟随tab滑动的滑动块
128
+
129
+ ** 1.FixedIndicatorView 主要用于固定大小来平均分配tab的情况。**
130
+ setSplitMethod(int splitMethod) 设置tab分割方式,平均分割,wrap分割,比重分割
131
+ setCenterView(View centerView, ViewGroup.LayoutParams layoutParams)设置显示在tab中心的View,用于实现新浪微博底部+号
132
132
getCenterView();
133
-
134
- ** 2.ScrollIndicatorView 主要用于多个tab可以进行滑动。**
135
- setSplitAuto(boolean splitAuto) 设置是否自动分割,当总tab宽度小于Indicator宽度就平均分割tab,或者比重分割。大于Indicator宽度就wrap分割
136
- setPinnedTabView(boolean isPinnedTabView) 设置是否固定第一个tab
137
- setPinnedShadow(Drawable shadowDrawable, int shadowWidth)设置固定tab的阴影
138
-
139
- ** 3.RecyclerIndicatorView 主要用于无数个tab可以进行滑动。**
140
- 优点适用于tab很多的情况,缺点tab少的时候没有ScrollIndicatorVie的自动分割功能。
141
-
133
+
134
+ ** 2.ScrollIndicatorView 主要用于多个tab可以进行滑动。**
135
+ setSplitAuto(boolean splitAuto) 设置是否自动分割,当总tab宽度小于Indicator宽度就平均分割tab,或者比重分割。大于Indicator宽度就wrap分割
136
+ setPinnedTabView(boolean isPinnedTabView) 设置是否固定第一个tab
137
+ setPinnedShadow(Drawable shadowDrawable, int shadowWidth)设置固定tab的阴影
138
+
139
+ ** 3.RecyclerIndicatorView 主要用于无数个tab可以进行滑动。**
140
+ 优点适用于tab很多的情况,缺点tab少的时候没有ScrollIndicatorVie的自动分割功能。
141
+
142
+ 方法:
143
+ > ** <1>setAdapter(IndicatorAdapter adapter)**
144
+ 设置适配器
145
+ 注意:在使用indicatorViewPager后这个方法会被indicatorViewPager使用
146
+ ** <2> setOnItemSelectListener(OnItemSelectListener listener)**
147
+ 设置选中监听
148
+ 注意:在使用indicatorViewPager后这个方法会被indicatorViewPager使用
149
+ ** <3> setOnIndicatorItemClickListener(OnIndicatorItemClickListener listener)**
150
+ 设置Indicator tab项的点击事件,在Indicator 的 onItemSelectListener前触发和拦截处理
151
+ ** <4> setOnTransitionListener(OnTransitionListener listener)**
152
+ 设置滑动变化的转换监听,tab在切换过程中会调用此监听
153
+ 设置它可以自定义实现在滑动过程中,tab项的字体变化,颜色变化等等效果
154
+ ** <5> setScrollBar(ScrollBar scrollBar)**
155
+ 设置滑动块,设置它可以自定义滑动块的样式
142
156
## 3.indicatorViewPager ##
143
157
用于将ViewPager和Indicator 联合使用。
144
158
0 commit comments