日韩性视频-久久久蜜桃-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时候--要命的焦点问题迎刃而解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产中文在线播放 | 亚洲激情在线视频 | 在线视频你懂得 | 特大黑人娇小亚洲女mp4 | 中国女人内精69xxxxxx | 久久在线免费视频 | 脱女学生小内内摸了高潮 | 又黄又爽的视频在线观看 | 国产精品美女久久久久图片 | 欧美成人黄色小说 | 六月色丁香| 免费激情| 亚洲一区二区高清 | 成人精品免费网站 | 新天堂av| 欧美专区一区 | 日韩黄色影院 | 国产成人久久婷婷精品流白浆 | 国产午夜精品理论片在线 | 视频在线观看视频 | 黄色三级三级 | 日本一区二区三区在线视频 | 原创少妇半推半就88av | 久久久久99精品 | 美攻壮受大胸奶汁(高h) | 成人mv在线观看 | 色多多黄色 | 精品一区久久久 | 国产亚洲一区二区三区四区 | a国产免费 | 国产一级aa大片毛片 | 看片在线| 婷婷玖玖 | 女优在线观看 | 青青草日本 | 久久国产精品影视 | 91 高清 在线 制服 偷拍 | 亚洲视频综合 | 日韩欧美亚洲一区 | 日韩成人免费在线视频 | 国产吃瓜黑料一区二区 | 日韩精品短片 | 91精品视频免费观看 | 成人无高清96免费 | 欧美精品一区二区三区视频 | www视频在线免费观看 | 妹子干综合网 | 亚洲av不卡一区二区 | 国产18精品乱码免费看 | 亚洲精品国产精品国自产观看浪潮 | 人妻一区二区三区 | 火影黄动漫免费网站 | 中文在线国产 | 亚洲精品一区二区三区影院忠贞 | 成人欧美一区二区 | 日韩h在线| 黄色三级图片 | 中文字幕在线播放一区 | 国产91久久精品一区二区 | 日韩在线中文 | 波多野结衣在线网址 | 久久久久久久久久久久久久久久久久久久 | 韩国伦理电影免费在线 | 久久久久亚洲av无码专区桃色 | 日韩毛片av | 爱爱免费网站 | 男人天堂1024 | 美乳人妻一区二区三区 | 99在线观看免费视频 | 国内成人自拍 | 久久精品国产大片免费观看 | 人人爽人人干 | 欧美色拍| 国产又色又爽又黄又免费 | 欧美日韩天堂 | 人妻体内射精一区二区三区 | 一级片一区二区三区 | 久久久视 | 福利视频一区二区三区 | 国产一区二区在线精品 | 亚洲性网| 久久99久久99精品蜜柚传媒 | 91丝袜美女 | 国产精品久久久久久久av | 欧美中文日韩 | 色偷偷人人澡人人爽人人模 | 日韩婷婷 | 久久99国产综合精品免费 | 99国产成人精品 | 国产精品羞羞答答 | 亚洲 小说 欧美 激情 另类 | 欧美电影一区 | 亚洲欧美综合久久 | 欧美性生交xxxxx | 九九福利视频 | 天天舔天天射天天干 | 日韩中文字幕精品 | 性欧美视频在线观看 | 亚洲国产精彩视频 |