Android ListView的item中嵌套ScrollView的解決辦法
前沿:有時(shí)候,listview 的item要顯示的字段比較多,考慮到顯示問(wèn)題,item外面不得不嵌套ScrollView來(lái)實(shí)現(xiàn),于是問(wèn)題來(lái)了,當(dāng)listview需要做點(diǎn)擊事件時(shí),由于ScrollView的嵌套使用,攔截了listvew點(diǎn)擊事件:只好重寫(xiě)listview來(lái)實(shí)現(xiàn)了。
/** * * @author 作者:易皇星 * * @da2016年10月24日 時(shí)間: * * @toTODO 類描述: 解決 ListView中嵌套ScrollView,ScrollView攔截ListView的Item點(diǎn)擊事件的解決辦法 * * * 在listview中嵌套ScrollView,發(fā)現(xiàn)橫滑豎滑都正常,但是無(wú)法單擊Listview的Item。查詢Android分發(fā)機(jī)制后解決,繼承Listview重寫(xiě)Listview的onInterceptTouchEvent。 * * onInterceptTouchEvent中總是調(diào)用listview的onTouchEvent保證listview的事件都執(zhí)行, * super.onInterceptTouchEvent(ev)不會(huì)攔截需要傳遞給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事件(不攔截會(huì)由于listview和scrollview同時(shí)執(zhí)行滑動(dòng)卡頓) 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的解決辦法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android之ScrollView嵌套ListView和GridView沖突的解決方法
- Android筆記之:在ScrollView中嵌套ListView的方法
- Android編程之截屏實(shí)現(xiàn)方法(包括scrollview與listview)
- Android ScrollView嵌套ExpandableListView顯示不正常的問(wèn)題的解決辦法
- Android 中ScrollView嵌套GridView,ListView的實(shí)例
- Android ListView與ScrollView沖突的解決方法總結(jié)
- Android ScrollView 下嵌套 ListView 或 GridView出現(xiàn)問(wèn)題解決辦法
- Android 中ScrollView與ListView沖突問(wèn)題的解決辦法
- Android開(kāi)發(fā)實(shí)現(xiàn)ScrollView中嵌套兩個(gè)ListView的方法
相關(guān)文章
android UI進(jìn)階之a(chǎn)ndroid中隱藏的layout 抽屜的使用方法
android UI進(jìn)階之a(chǎn)ndroid中隱藏的layout 抽屜的使用方法,需要的朋友可以參考一下2013-05-05Android開(kāi)發(fā)中Activity的生命周期及加載模式詳解
這篇文章主要介紹了Android開(kāi)發(fā)中Activity的生命周期及加載模式詳解的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05Android?Studio實(shí)現(xiàn)簡(jiǎn)單補(bǔ)間動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了Android?Studio實(shí)現(xiàn)簡(jiǎn)單補(bǔ)間動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07Android SwipeRefreshLayout下拉刷新源碼解析
這篇文章主要為大家詳細(xì)解析了Android SwipeRefreshLayout下拉刷新源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Android Studio實(shí)現(xiàn)進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了Android Studio實(shí)現(xiàn)進(jìn)度條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04Android學(xué)習(xí)教程之滑動(dòng)布局(14)
這篇文章主要為大家詳細(xì)介紹了Android學(xué)習(xí)教程之滑動(dòng)布局使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Android Studio設(shè)置主題與字體大小圖文教程
這篇文章通過(guò)圖文詳細(xì)的給大家介紹了Android Studio中如何設(shè)置主題與字體大小,文章介紹的非常詳細(xì),相信對(duì)大家學(xué)習(xí)使用Android Studio具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)一起看看吧。2016-10-10android xml實(shí)現(xiàn)按鈕的圓角、陰影效果及按下變化效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了android xml實(shí)現(xiàn)按鈕的圓角、陰影效果以及按下變化效果,通過(guò)五個(gè)xml文件實(shí)現(xiàn)按鈕的圓角陰影效果,代碼也很簡(jiǎn)單,需要的朋友可以參考下2021-05-05實(shí)例講解Android中的View類以及自定義View控件的方法
這篇文章主要介紹了Android中的View類以及自定義View控件的方法,講解了如何繼承View類并且展示了一個(gè)對(duì)View進(jìn)行重繪的例子,需要的朋友可以參考下2016-04-04