滚动到底部或顶部响应的ScrollView使用
本文介紹滾動到底部或頂部響應(如加載更多)的ScrollView的使用。網上關于到達底部加載更多的listView示例很多,對于ScrollView卻寥寥無幾,下面介紹使用自定義的ScrollView來完成該功能的實例。
?
示例APK可從這些地址下載:Google Play, ?360手機助手, ?百度手機助手, ?小米應用商店, ?豌豆莢
示例代碼地址見BorderScrollViewDemo,效果圖如下:
1、引入公共庫
引入TrineaAndroidCommon@Github(歡迎star和fork^_^)作為你項目的library(如何拉取代碼及添加公共庫),或是自己抽取其中的BorderScrollView@Github部分使用,BorderScrollView繼承自ScrollView,可以自定義滾動到底部或頂部時需要完成的任務。
?
2、自定義layout
只需將定義的ScrollView標簽換成cn.trinea.android.common.view.BorderScrollView標簽即可,源碼如下(其中的多個TextView只是為了將ScrollView撐滿一屏幕):
?
3、設置onTop和onBottom事件
通過borderScrollView.setOnBorderListener(OnBorderListener onBorderListener)設置到達底部和頂部的響應。
OnBorderListener有onTop()和void onBottom()兩個函數可以實現,分別在滑動到頂部和底部時被調用執行。代碼如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | public class BorderScrollViewDemo extends Activity { ????private BorderScrollView borderScrollView; ????private TextView???????? textView1; ????private TextView???????? textView2; ????private Context??????????context; ????@Override ????protected void onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.border_scroll_view_demo); ????????context = getApplicationContext(); ????????borderScrollView = (BorderScrollView)findViewById(R.id.scroll_view); ????????borderScrollView.setOnBorderListener(new OnBorderListener() { ????????????@Override ????????????public void onTop() { ????????????????// may be done multi times, u should control it ????????????????Toast.makeText(context, "has reached top", Toast.LENGTH_SHORT).show(); ????????????} ????????????@Override ????????????public void onBottom() { ????????????????// may be done multi times, u should control it ????????????????Toast.makeText(context, "has reached bottom", Toast.LENGTH_SHORT).show(); ????????????} ????????}); ????????textView1 = (TextView)findViewById(R.id.text1); ????????textView2 = (TextView)findViewById(R.id.text2); ????????Display display = getWindowManager().getDefaultDisplay(); ????????textView1.setHeight(display.getHeight() / 2); ????????textView2.setHeight(display.getHeight() / 2); ????} } |
注意onTop和onBottom是有可能被多次執行的,需要自己控制,將在后面的實現原理中介紹具體原因~。
總結
以上是生活随笔為你收集整理的滚动到底部或顶部响应的ScrollView使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android: BaseAdapter
- 下一篇: scrollview 实现滑动到底部再滑