Android ListView的item中嵌套ScrollView的解決辦法
前沿:有時候,listview 的item要顯示的字段比較多,考慮到顯示問題,item外面不得不嵌套ScrollView來實現(xiàn),于是問題來了,當listview需要做點擊事件時,由于ScrollView的嵌套使用,攔截了listvew點擊事件:只好重寫listview來實現(xiàn)了。
/** * * @author 作者:易皇星 * * @da2016年10月24日 時間: * * @toTODO 類描述: 解決 ListView中嵌套ScrollView,ScrollView攔截ListView的Item點擊事件的解決辦法 * * * 在listview中嵌套ScrollView,發(fā)現(xiàn)橫滑豎滑都正常,但是無法單擊Listview的Item。查詢Android分發(fā)機制后解決,繼承Listview重寫Listview的onInterceptTouchEvent。 * * onInterceptTouchEvent中總是調(diào)用listview的onTouchEvent保證listview的事件都執(zhí)行, * super.onInterceptTouchEvent(ev)不會攔截需要傳遞給ScrollView的橫滑。 */ public class MyListView extends ListView { private int flag = 0; private float StartX; private float StartY; public MyListView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { // 總是調(diào)用listview的touch事件處理 onTouchEvent(ev); if (ev.getAction() == MotionEvent.ACTION_DOWN) { StartX = ev.getX(); StartY = ev.getY(); return false; } if (ev.getAction() == MotionEvent.ACTION_MOVE) { float ScollX = ev.getX() - StartX; float ScollY = ev.getY() - StartY; // 判斷是橫滑還是豎滑,豎滑的話攔截move事件和up事件(不攔截會由于listview和scrollview同時執(zhí)行滑動卡頓) if (Math.abs(ScollX) < Math.abs(ScollY)) { flag = 1; return true; } return false; } if (ev.getAction() == MotionEvent.ACTION_UP) { if (flag == 1) { return true; } return false; } return super.onInterceptTouchEvent(ev); } }
以上所述是小編給大家介紹的Android ListView的item中嵌套ScrollView的解決辦法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Android之ScrollView嵌套ListView和GridView沖突的解決方法
- Android筆記之:在ScrollView中嵌套ListView的方法
- Android編程之截屏實現(xiàn)方法(包括scrollview與listview)
- Android ScrollView嵌套ExpandableListView顯示不正常的問題的解決辦法
- Android 中ScrollView嵌套GridView,ListView的實例
- Android ListView與ScrollView沖突的解決方法總結(jié)
- Android ScrollView 下嵌套 ListView 或 GridView出現(xiàn)問題解決辦法
- Android 中ScrollView與ListView沖突問題的解決辦法
- Android開發(fā)實現(xiàn)ScrollView中嵌套兩個ListView的方法
相關(guān)文章
android UI進階之a(chǎn)ndroid中隱藏的layout 抽屜的使用方法
android UI進階之a(chǎn)ndroid中隱藏的layout 抽屜的使用方法,需要的朋友可以參考一下2013-05-05Android開發(fā)中Activity的生命周期及加載模式詳解
這篇文章主要介紹了Android開發(fā)中Activity的生命周期及加載模式詳解的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-05-05Android SwipeRefreshLayout下拉刷新源碼解析
這篇文章主要為大家詳細解析了Android SwipeRefreshLayout下拉刷新源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Android Studio設(shè)置主題與字體大小圖文教程
這篇文章通過圖文詳細的給大家介紹了Android Studio中如何設(shè)置主題與字體大小,文章介紹的非常詳細,相信對大家學(xué)習(xí)使用Android Studio具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。2016-10-10android xml實現(xiàn)按鈕的圓角、陰影效果及按下變化效果的實現(xiàn)代碼
這篇文章主要介紹了android xml實現(xiàn)按鈕的圓角、陰影效果以及按下變化效果,通過五個xml文件實現(xiàn)按鈕的圓角陰影效果,代碼也很簡單,需要的朋友可以參考下2021-05-05實例講解Android中的View類以及自定義View控件的方法
這篇文章主要介紹了Android中的View類以及自定義View控件的方法,講解了如何繼承View類并且展示了一個對View進行重繪的例子,需要的朋友可以參考下2016-04-04