列表片段不可点击

时间:2013-10-23 07:35:16

标签: android fragment android-listfragment

我有一个扩展列表片段的类,由于某种原因,片段没有接收列表项单击。我已将问题缩小到行项目,但我仍然无法看到问题所在。这是我的XML。有什么想法吗?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:focusable="true">   
<ImageButton
    android:id="@+id/image_button"
    android:layout_width="120px"
    android:layout_height="120px"
    android:scaleType="fitXY"/>
<TextView
    android:id="@+id/text_view1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge"/>

以下是我在自定义适配器中对此布局进行充气的方法:

public View getView(int position, View convertView, ViewGroup parent){
    LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = vi.inflate(R.layout.list_item, parent, false);
    T t = list.get(position);
    TextView tv1 = (TextView) view.findViewById(R.id.text_view1);
    tv1.setText(t.getName());
    ImageButton image= (ImageButton) view.findViewById(R.id.image_button);
    image.setBackgroundColor(Color.parseColor("blue"));
    return view;
  }

1 个答案:

答案 0 :(得分:0)

我没有看到你的父布局中有任何android:focusable =“true”的原因,除非你试图实现看起来像你的问题:将焦点从列表切换到列表项。从您的布局中删除该元素,它将正常工作。

修订版:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:focusable="true">   
    <ImageButton
        android:id="@+id/image_button"
        android:layout_width="120px"
        android:layout_height="120px"
        android:scaleType="fitXY"/>
    <TextView
        android:id="@+id/text_view1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge"/>