Android ListView的item中嵌套ScrollView的解決辦法
前沿:有時候,listview 的item要顯示的字段比較多,考慮到顯示問題,item外面不得不嵌套ScrollView來實(shí)現(xiàn),于是問題來了,當(dāng)listview需要做點(diǎn)擊事件時,由于ScrollView的嵌套使用,攔截了listvew點(diǎn)擊事件:只好重寫listview來實(shí)現(xiàn)了。
/**
*
* @author 作者:易皇星
*
* @da2016年10月24日 時間:
*
* @toTODO 類描述: 解決 ListView中嵌套ScrollView,ScrollView攔截ListView的Item點(diǎn)擊事件的解決辦法
*
*
* 在listview中嵌套ScrollView,發(fā)現(xiàn)橫滑豎滑都正常,但是無法單擊Listview的Item。查詢Android分發(fā)機(jī)制后解決,繼承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編程之截屏實(shí)現(xiàn)方法(包括scrollview與listview)
- Android ScrollView嵌套ExpandableListView顯示不正常的問題的解決辦法
- Android 中ScrollView嵌套GridView,ListView的實(shí)例
- Android ListView與ScrollView沖突的解決方法總結(jié)
- Android ScrollView 下嵌套 ListView 或 GridView出現(xiàn)問題解決辦法
- Android 中ScrollView與ListView沖突問題的解決辦法
- Android開發(fā)實(shí)現(xiàn)ScrollView中嵌套兩個ListView的方法
相關(guān)文章
淺談Android為RecyclerView增加監(jiān)聽以及數(shù)據(jù)混亂的小坑
下面小編就為大家?guī)硪黄獪\談Android為RecyclerView增加監(jiān)聽以及數(shù)據(jù)混亂的小坑。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
Android開發(fā)MediaCodec和lamemp3多段音頻截取拼接
這篇文章主要為大家介紹了Android開發(fā)使用MediaCodec和lamemp3實(shí)現(xiàn)多段音頻截取拼接的編程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
android中Glide實(shí)現(xiàn)加載圖片保存至本地并加載回調(diào)監(jiān)聽
本篇文章主要介紹了android中Glide實(shí)現(xiàn)加載圖片保存至本地并加載回調(diào)監(jiān)聽,具有一定的參考價值,有興趣的可以了解一下2017-09-09
詳解Android中實(shí)現(xiàn)Redux方法
本篇文章給大家通過代碼實(shí)例教學(xué)Android中實(shí)現(xiàn)Redux的方法,有需要的朋友跟著參考下吧。2018-01-01

