在ListView中对焦控件

yan*_*nko 3 android listview focus

上下文:我想要一个不能获得焦点的ListView(例如,当用户触摸它时不会突出显示行).然而,每个行小部件都有自己的OnClickListener.这是我在布局xml中指定的内容:

android:choiceMode="none" 
android:focusableInTouchMode="false"
android:focusable="false"
Run Code Online (Sandbox Code Playgroud)

ListView仍然表现完全相同.请有人解释一下

  1. 三者之间的相互关系
  2. 创建无法获得焦点的ListView的正确方法是什么?

TIA.

Qui*_*son 6

虽然您在xml中指定了,但您也可以尝试在代码中指定.虽然我不确定您是否可以将列表设置为不可聚焦,但仍然可以将列表设置为可滚动且可点击.

在你的setContentView之后......

myListView.setFocusableInTouchMode(false);
Run Code Online (Sandbox Code Playgroud)

您也可以尝试从视图继承,然后在过渡期间添加一些调试代码,以帮助您找到列表实际具有焦点的时间.

    myListView.setOnFocusChangeListener(new OnFocusChangeListener(){

        public void onFocusChange(View v, boolean hasFocus)
        {
            v.setBackgroundColor(hasFocus ? Color.GRAY : Color.BLACK);
        }
    });

    myListView.setClickable(true);
Run Code Online (Sandbox Code Playgroud)