国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

完美解決smoothScrollToPosition(0)失效的問題

2019-11-09 13:57:52
字體:
來源:轉載
供稿:網友
我們知道,當調用smoothScrollToPosition(0)方法,listView會快速的平滑的滑動到頂部。但是當listView加載的數據list太多的時候,這個方法就會失效,據網上的介紹,是因為這個方法會消耗太多的資源,所以不能完全處理完所有的items 回到頂部。于是就滑動到一個不確定的位置。那怎么解決這個問題呢,有兩個方法可供選擇:方法一:使用setSelection(0)來代替。這個方法是有效的,但是是瞬間跳到了0 的位置,喪失了平滑性,為了彌補這個方法的缺陷,可以先setselection到0附近的位置,比如setSelection(3),然后再調用smoothScrollToPosition(0),這樣的效果就是listview啪的一下跳到了3的位置,然后緊接著平滑的滑動到了0的位置。方法二:為ListView添加OnScrollListener監聽,ListView.setOnScrollListener(new AbsListView.OnScrollListener() {                    @Override                    public void onScrollStateChanged(AbsListView view, int scrollState) {                        Common.Log_i("onScrollStateChanged");                        if (scrollState== AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {                            if (ListView.getFirstVisiblePosition() != 0) {                                ListView.smoothScrollToPosition(0);                            } else {                                ListView.setOnScrollListener(null);                            }                        }                    }                    @Override                    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {                        Common.Log_i("onScroll");                    }                });ListView.smoothScrollToPosition(0);既可。onScrollStateChanged方法中的scrollState參數是標記滑動狀態的,一共有三種狀態:OnScrollListener.SCROLL_STATE_IDLE:滾動停止時的狀態OnScrollListener.SCROLL_STATE_STOUCH_SCROLL:觸摸正在滾動,手指還沒離開界面時的狀態OnScrollListener.SCROLL_STATE_FLING:用戶在用力滑動后,ListView由于慣性將繼續滑動時的狀態這里使用SCROLL_STATE_IDLE.一旦滑動停下來了,就判斷當前顯示的第一個item下標是不是0,不是的話接著smoothScrollToPosition(0),這樣不管每次滑動到了哪個位置,只要停下來后檢測倒不是頂部就會馬上繼續滑動,一直到回到頂部,停止。完美解決。注意,這段代碼一定要放在onScrollStateChanged方法中調用,如果放在onScroll方法中,也會實現這個功能,但是整個過程是快速的卡頓著滑動到頂部的。這是因為只要在滑動onScroll就會執行,所以明明這一個smoothScroll還沒有結束,就又發起了一次smoothscroll,馬兒明明在好好的跑,你卻要抽鞭子,它能不疼的停下來跳個高嘛。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 思南县| 镇远县| 正镶白旗| 新平| 抚松县| 辉县市| 旅游| 迭部县| 湘阴县| 和静县| 文水县| 武平县| 龙州县| 威宁| 贡觉县| 施秉县| 长葛市| 周宁县| 舟曲县| 肇庆市| 吉安县| 南陵县| 阿拉尔市| 饶阳县| 天祝| 抚远县| 凤山县| 滁州市| 八宿县| 清水县| 阿巴嘎旗| 朔州市| 宁武县| 连云港市| 南昌县| 静安区| 屯昌县| 彭水| 龙海市| 揭阳市| 蓬莱市|