2
2
粘性控件,其任意一个子控件都可滑动停留,无论是View,还是ViewGroup;用该控件可以轻松实现支付宝"全部应用"界面。
3
3
## 演示图
4
4
![ DragGridView] ( https://github.com/wkp111/StickLayout/blob/master/StickLayout.gif " 演示图 ")
5
- ![ DragGridView] ( https://github.com/wkp111/StickLayout/blob/master/StickLayout1.gif " 演示图1 ") <br />
6
- Note:图1为设置属性wkp_canScrollToEndViewTop=true,图2没有。
5
+ ![ DragGridView] ( https://github.com/wkp111/StickLayout/blob/master/StickLayout1.gif " 演示图1 ")
6
+ ![ DragGridView] ( https://github.com/wkp111/StickLayout/blob/master/StickLayout2.gif " 演示图2 ") <br />
7
+ Note:图1为设置属性wkp_canScrollToEndViewTop=true,图2没有;图3为设置滑动改变监听。
7
8
## Gradle集成
8
9
``` groovy
9
10
dependencies{
10
- compile 'com.wkp:StickLayout:1.0.3 '
11
+ compile 'com.wkp:StickLayout:1.0.4 '
11
12
//Android Studio3.0+可用以下方式
12
- //implementation 'com.wkp:StickLayout:1.0.3 '
13
+ //implementation 'com.wkp:StickLayout:1.0.4 '
13
14
}
14
15
```
15
16
Note:可能存在Jcenter还在审核阶段,这时会集成失败!
@@ -162,6 +163,7 @@ public class MainActivity extends AppCompatActivity {
162
163
private View mTv3;
163
164
private View mTv7;
164
165
private View mTv4;
166
+ private int currentPosition = - 1 ;
165
167
166
168
@Override
167
169
protected void onCreate (Bundle savedInstanceState ) {
@@ -172,26 +174,33 @@ public class MainActivity extends AppCompatActivity {
172
174
mTv3 = findViewById(R . id. tv3);
173
175
mTv4 = findViewById(R . id. tv4);
174
176
mTv7 = findViewById(R . id. tv7);
175
- // mSl.setStickView(findViewById(R.id.tv2));
177
+ // mSl.setStickView(findViewById(R.id.tv2)); //设置粘性控件
176
178
// mSl.setStickView(findViewById(R.id.tv3));
177
- // mSl.canScrollToEndViewTop(true);
179
+ // mSl.canScrollToEndViewTop(true); //设置是否开启最后控件滑动到顶部
180
+ // 设置滑动改变监听(一滑动就会有回调)
181
+ mSl. setOnScrollChangeListener(new StickLayout .OnScrollChangeListener () {
182
+ @Override
183
+ public void onScrollChange (StickLayout v , View currentView , int position , int scrollX , int scrollY , int oldScrollX , int oldScrollY ) {
184
+ // 直到当前控件改变在做事情
185
+ if (currentPosition != position) {
186
+ Toast . makeText(v. getContext(), ((TextView ) currentView). getText(). toString(), Toast . LENGTH_SHORT ). show();
187
+ currentPosition = position;
188
+ }
189
+ }
190
+ });
178
191
}
179
192
180
193
public void addView (View view ) {
181
194
TextView textView = new TextView (view. getContext());
182
195
textView. setGravity(Gravity . CENTER );
183
- textView. setPadding(10 ,10 ,10 ,10 );
196
+ textView. setPadding(10 , 10 , 10 , 10 );
184
197
textView. setText(" 新条目" );
185
- mSl. addView(textView,0 );
198
+ mSl. addView(textView, 0 );
186
199
}
187
200
188
- public void click (View view ) {
189
- Toast . makeText(this , " 第1行" , Toast . LENGTH_SHORT ). show();
190
- }
191
-
192
- public void scrollTo (View view ) {
193
- // 滑动到指定子控件
194
- mSl. scrollToView(mTv2);
201
+ public void scrollTo2 (View view ) {
202
+ // 滑动到指定子控件
203
+ mSl. scrollToView(mTv2);
195
204
}
196
205
197
206
public void scrollTo3 (View view ) {
@@ -206,7 +215,6 @@ public class MainActivity extends AppCompatActivity {
206
215
mSl. scrollToView(mTv7);
207
216
}
208
217
}
209
-
210
218
```
211
219
Note:还有其他API请根据需要自行参考!
212
220
## 寄语
218
226
219
227
220
228
## 版本更新
229
+ * v1.0.4<br />
230
+ 新增滑动改变监听,主要为解决滑动过程中做一些联动操作<br /><br />
221
231
* v1.0.3<br />
222
232
新增滑动到指定子控件API<br /><br />
223
233
* v1.0.1<br />
0 commit comments