上下文菜单不适用于行布局切换



我的片段中有一个带有自定义适配器(从ArrayAdapter扩展而来)的ListView。list.xml:

...
    <ListView android:id="@android:id/list" android:layout_width="match_parent"
        android:layout_height="match_parent" />
...

rowlayout.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="60dp">
    <TextView
        android:id="@+id/alarm_list_rowlayout_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="15dp">
    </TextView>
    <Switch
        android:id="@+id/alarm_list_rowlayout_switch_active"
        android:layout_width="0dp"
        android:layout_height="20dp"
        android:showText="false"
        android:layout_marginRight="20dp"
        android:layout_marginTop="15dp"
        android:layout_weight="1">
    </Switch>
</LinearLayout>

fragment.java:

...
        mListView = (AbsListView) view.findViewById(android.R.id.list); //my list
        mListView.setAdapter(adapter);
        mListView.setOnItemClickListener(this);
        registerForContextMenu(mListView); //set up context menu
...

如果行布局中没有switch,那么所有的都可以正常工作。但若它添加了,那个么当点击行时什么也并没有发生。如何解决这个问题并同时使用上下文菜单和开关?

添加

android:descendantFocusability="blocksDescendants"

到您的LinearLayout。

添加

android:textIsSelectable="false"

到您的TextView

添加

android:focusable="false"

到您的交换机

相关内容

  • 没有找到相关文章

最新更新