按钮没有在Android中的ListView中获得焦点

时间:2014-08-14 09:46:13

标签: android listview focus

我有一个listview,按钮和文本作为行元素。我想滚动只有按钮应该有焦点而不是整个列表。但总是整个列表都有焦点,而不是按钮。此外,如果按钮具有焦点,那么将调用listview onItemSelected方法吗?

main.xml中的Listview

<ListView
        android:id="@+id/episodes_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:choiceMode="singleChoice"
        android:clickable="true" />

在row.xml中添加子项

<?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="wrap_content"    
android:descendantFocusability="afterDescendants" >

<TextView
    android:id="@+id/name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:ellipsize="end"
    android:focusable="true"
    android:gravity="left|center"
    android:singleLine="true"
    android:textColor="#000000"
    android:textStyle="bold" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@drawable/selector_btn_popup_play"
    android:gravity="center"
    android:text="@string/play"
    android:textColor="@drawable/selector_btn_text_color_light" />

    </LinearLayout>

2 个答案:

答案 0 :(得分:0)

尝试设置ListView不可点击

<ListView
    android:id="@+id/episodes_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:choiceMode="singleChoice"
    android:clickable="false" />

并在yourButton.setTag() ListView方法的按钮中添加标记getView()以引用当前单元格并将OnClickListener添加到按钮。在onClick()句柄项目中,点击按钮获取标记。

修改

如果列表视图仍然可以克隆,请检查已接受的答案here

答案 1 :(得分:0)

在方法getView中使用此行在适配器中设置ListView不可单击: rowView = inflater.inflate(R.layout.menu_item, null); rowView.setOnClickListener(null);