导航抽屉menuitem中的按钮不起作用

时间:2018-05-29 11:25:08

标签: android navigation-drawer

我只是尝试将一个导航抽屉菜单项设置为特定视图。我分别在左侧和右侧添加了两个textView。和SwitchCompat。但SwitchCompat无法正常工作。我只想尝试一条消息进行测试。

我搜索了很多资源,却找不到那样的东西。这是不好的做法吗?还是不好用?

这是我的代码:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:text="Pay" />

    <android.support.v7.widget.SwitchCompat
        android:id="@+id/paymentMethod"
        android:layout_width="35dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:theme="@style/SelectionSwitch" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:layout_weight="4"
        android:text="Card" />
</LinearLayout>

关于我的活动:

public boolean onNavigationItemSelected(MenuItem item) {

    int id = item.getItemId();

    toolbarMenu.findItem(R.id.menu_item_search).setVisible(id == R.id.nav_camera);

    Fragment fragment = null;
    Class fragmentClass = null;

    if (id == R.id.nav_camera) {
        View view = item.getActionView();

      SwitchCompat payMethod = view.findViewById(R.id.paymentMethod);
            payMethod.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    Toast.makeText(ActivityHome.this, "TEST", Toast.LENGTH_SHORT).show();

        }

实际上点击超过10次后它可以工作,但无法理解原因。

2 个答案:

答案 0 :(得分:1)

创建一个布局,然后添加到菜单xml:

<item
     android:id="@+id/nav_datasaver"
     app:actionLayout="@layout/menu_item_datasaver" />

menu_item_datasaver是在布局展开中创建并使用菜单xml的线性布局

答案 1 :(得分:1)

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_download"
        android:icon="@drawable/ic_download"
        android:title="SAVED OFFLINE" />


        <item
            android:id="@+id/nav_referral"
            app:actionLayout="@layout/menu_item_refer" />

        <item
            android:id="@+id/nav_contest"
            app:actionLayout="@layout/menu_item_contest" />


    <!--  <item
          android:id="@+id/nav_login_button"
          android:icon="@drawable/ic_download"
          android:title="LOGOUT"/>-->
</group>