我在Activity的后代使用listview布局,Adapter的getView实现如下,它是longclickable:
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
TextView tv = new TextView(CustomTitleActivity.this);
tv.setText(title[position]);
return tv;
}
return convertView;
}
但是当我尝试从这样的布局文件中膨胀项目的视图时:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/local_songs_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:focusable="false"
android:orientation="horizontal">
<LinearLayout
android:layout_weight="1"
android:focusable="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:focusable="false"
android:text="TITLE"
android:textAppearance="?android:textAppearanceSearchResultTitle"
/>
<TextView
android:id="@+id/artist"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="Unknow"
android:focusable="false"
android:textAppearance="?android:textAppearanceSearchResultSubtitle"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:orientation="horizontal">
<ImageButton
android:id="@+id/favorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_favourite"
android:background="#0000"
android:focusable="false"
android:onClick="onToggleStar"/>
<CheckBox
android:id="@+id/select"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:focusable="false"/>
</LinearLayout>
</LinearLayout>
我无法点击/长按它们,我已经尝试将android:focusable属性设置为false。 有人能给我一个暗示吗?
答案 0 :(得分:1)
自己回答。 因为在ImageButton的构造函数中,它会再次调用setFocusable(true),所以如果你真的不需要聚焦,可以在构造ImageButton之后调用setFocusable(false)。然后问题就解决了。