日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ListView中含有EditText时候--要命的焦点问题迎刃而解

發布時間:2024/10/12 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ListView中含有EditText时候--要命的焦点问题迎刃而解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近做項目的時候遇到了一個問題,就是在ListView的item上面含有一個EditText,要求是這樣:1當點擊item的時候,item可以點擊;2當點擊EditText的時候EditText也可以正常彈出軟件盤; 當時真是把我給搞瘋了,item可以點擊的時候,EditText不能正常使用了,EditText好了的時候,item又不可點擊了,當時那個火,心中一萬句草泥馬都出來了。言歸正傳,先看一下解決的效果:

?
當一個ListView的item中含有搶占焦點的控件的時候,我們通常在item的布局中加上這樣一句:?
android:descendantFocusability=”blocksDescendants”?
防止搶占焦點,大多數情況下都能夠解決問題,但是如果是EditText的時候,就很坑了,你會發現軟件盤都不能夠彈出,更別說輸入文字了,要解決這個問題,就是讓點擊EditText的時候,item最外層不攔截點擊事件就ok了,點解item的時候,在攔截點擊事件也同樣ok了。看getView中關鍵代碼片段:

mHolder.edtInput.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) { ((ViewGroup) v.getParent()) .setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); return false; } });

?

這個是EditText的時候的處理?
setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);?
這個很關鍵,而且是在OnTouchListener中執行的,因為在Android中View的觸摸事件傳遞中,View的OnTouchListener調用是早于其他事件的,而且返回值false,代表目前事件沒有被消耗,繼續向下傳遞,不影響后續事件的處理(這里不影響EditText其他事件的處理)

convertView.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) { ((ViewGroup) v) .setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); Toast.makeText(mContext, "點擊了item", Toast.LENGTH_LONG).show(); return false; } });

?

?

這個是convertView的處理,同樣也是一行關鍵代碼?
.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);?
下面附上適配器中的代碼和布局代碼,需要的同學自己copy一下看看吧:?
item布局代碼:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:descendantFocusability="blocksDescendants" android:orientation="horizontal" > <TextView android:id="@+id/tvGroupTitle" android:layout_width="0dip" android:layout_height="50dip" android:layout_weight="1" android:gravity="center" /> <EditText android:id="@+id/edtGroupContent" android:layout_width="100dip" android:layout_height="wrap_content" /> </LinearLayout>

?

BaseAdapter的代碼:

public class NormalAdapter extends ArrayAdapter<String> {private List<String> mDatas;private Context mContext;public NormalAdapter(Context context, List<String> objects) { super(context, R.layout.activity_list, objects); mDatas = objects; mContext = context; } @Override public View getView(final int position, View convertView, final ViewGroup parent) { Log.e("tag", parent.toString()); Holder mHolder = null; if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate( R.layout.item_group, null); mHolder = new Holder(); mHolder.tvTitle = (TextView) convertView .findViewById(R.id.tvGroupTitle); mHolder.edtInput = (EditText) convertView .findViewById(R.id.edtGroupContent); convertView.setTag(mHolder); } else { mHolder = (Holder) convertView.getTag(); } mHolder.tvTitle.setText(mDatas.get(position)); mHolder.edtInput.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { ((ViewGroup) v.getParent()) .setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); return false; } }); convertView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { ((ViewGroup) v) .setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); Toast.makeText(mContext, "點擊了item", Toast.LENGTH_LONG).show(); return true; } }); return convertView; } private static final class Holder { TextView tvTitle; EditText edtInput; } }

?

看看代碼是不是解決問題了,可以的話,就給個贊吧!哈哈-^–^

轉載于:https://www.cnblogs.com/lingzhao/p/5594053.html

總結

以上是生活随笔為你收集整理的ListView中含有EditText时候--要命的焦点问题迎刃而解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人精品999| 九九热精品在线观看 | 2023av在线 | 黄色三级免费网站 | 成人国产a | 国产精品偷拍 | 66精品| 毛片视 | 成人黄色动漫在线观看 | 999精品一区 | 免费国产高清 | 艳妇乳肉豪妇荡乳av无码福利 | 国产毛片在线视频 | 精品人妻人伦一区二区有限公司 | 爱爱免费网站 | 精品国产高清在线观看 | 鲁鲁久久 | 成全影视在线观看第8季 | 国产99热 | 一区二区国产视频 | 国产精品免费无码 | 丰腴饱满的极品熟妇 | 9cao| 国产午夜精品久久久久久久 | fc2成人免费视频 | 亚洲欧美精品久久 | 一区二区三区免费观看视频 | 精品熟妇无码av免费久久 | 动漫女生光屁股 | 精品国产96亚洲一区二区三区 | 秋霞7777鲁丝伊人久久影院 | 91一区二区视频 | 亚洲av无码一区二区三区人 | 日韩在线天堂 | 少妇视频一区 | 69av在线播放 | 久久久久久亚洲av毛片大全 | 亚洲图片在线 | 巨骚综合 | 成年人午夜网站 | 怡红院男人的天堂 | 久久成人视屏 | 男男在线观看 | 一级黄色片在线看 | 极品人妻videosss人妻 | 成人精品水蜜桃 | 久久综合福利 | 不卡精品视频 | 欧美日韩午夜 | 青青艹av| 午夜专区| 欧美性生活精品 | 午夜在线视频免费 | 日本不卡视频一区二区 | 中文字幕视频在线播放 | 九九热精品视频在线 | 国产精品伦一区二区三区免费看 | 伊人网狼人| 波多野结衣操 | 天天干天天上 | 天天干,天天干 | 高h乱l高辣h文短篇h | 男同激情视频 | 精品一区视频 | 黄色一级a毛片 | 麻豆精品一区二区 | 超碰午夜 | 婷婷伊人五月天 | 免费淫片 | 久久久久久黄色 | 狠狠av| 国产96视频| 国产乱码视频 | 嫩草免费视频 | 国产一级性生活片 | 欧美精品在线免费 | 亚洲一区二区三区免费看 | 亚洲国产黄 | 精品人妻无码专区在线 | 直接看的av网站 | 亚洲色成人www永久在线观看 | 天天干天天上 | 亚洲黄网站在线观看 | 深夜福利国产精品 | 精品三级电影 | 伊人成人22 | av中文字幕网站 | 91精品久久久久久久99蜜桃 | 国产成人综合在线观看 | 开心激情网五月天 | 尤物视频在线观看免费 | 成人av免费播放 | 你懂得在线视频 | 中文字幕岛国 | 国产96在线 | 国产精品成人网站 | 综合婷婷久久 | 精品午夜福利视频 | 色爱av|