我有一个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>
答案 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);