Android中ListView的Item的子控件获取焦点问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中ListView的Item的子控件获取焦点问题相关的知识,希望对你有一定的参考价值。

ListView的Item中包含了ImageView和TextView控件,ImageView可以点击,但是TextView却不能点击

参考技术A ListView默认情况

当item有焦点时,item上的button等子控件获取不到焦点;
当子控件有焦点时,item无焦点无法响应onItemClick事件

ViewGroup.FOCUS_AFTER_DESCENDANTS:表示item的子控件优先于item获得焦点;
ViewGroup.FOCUS_BEFORE_DESCENDANTS:表示item优先于其子控件获得焦点。

解决办法:

[java] view plaincopy
listView.setOnItemSelectedListener(onItemSelectedListener);
private AdapterView.OnItemSelectedListener onItemSelectedListener =
new AdapterView.OnItemSelectedListener()
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
//当此选中的item的子控件需要获得焦点时
parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
//else parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);


@Override
public void onNothingSelected(AdapterView<?> parent)
parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);

追问

这个我设置了,没有起到效果额

追答

实在不行的话你可以把textview改成button,textview有的button都有

参考技术B 设置成编辑框

以上是关于Android中ListView的Item的子控件获取焦点问题的主要内容,如果未能解决你的问题,请参考以下文章

Android学习笔记之ListView与Item的焦点冲突处理

android ListView显示多个类型item 和 item中控件抢夺焦点解决办法

android ListView显示多个类型item 和 item中控件抢夺焦点解决办法

我的Android进阶之旅------&gt;Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法

Android控件ListView获取item中EditText值

Android控件ListView获取item中EditText值