在工具栏的自定义布局中找不到切换兼容性的参考
Can't find reference to switch compat in custom layout in toolbar
我正在尝试将 switchcompat 添加到工具栏,菜单项引用了自定义布局
toolbar_switch.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_marginRight="8dp"
android:layout_height="match_parent">
<android.support.v7.widget.SwitchCompat
android:layout_width="wrap_content"
app:showText="false"
android:id="@+id/switch_online"
android:layout_centerInParent="true"
android:layout_height="wrap_content" />
</RelativeLayout>
menu_main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_toggle"
android:actionLayout="@layout/toolbar_switch"
app:showAsAction="always"
android:title="" />
</menu>
如果我将菜单项设置为图像或文本,菜单会在 activity 中膨胀,但当我将其指向自定义布局时它不会显示
setSupportActionBar(toolbar);
actionBar = getSupportActionBar();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setOnMenuItemClickListener(this);
switchOnline = (SwitchCompat)toolbar.findViewById(R.id.switch_online);
我的应用主题是基于 AppCompat
由于您使用的是支持操作栏,因此您需要使用 app:actionLayout
来指定您的自定义视图。
我正在尝试将 switchcompat 添加到工具栏,菜单项引用了自定义布局
toolbar_switch.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_marginRight="8dp"
android:layout_height="match_parent">
<android.support.v7.widget.SwitchCompat
android:layout_width="wrap_content"
app:showText="false"
android:id="@+id/switch_online"
android:layout_centerInParent="true"
android:layout_height="wrap_content" />
</RelativeLayout>
menu_main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_toggle"
android:actionLayout="@layout/toolbar_switch"
app:showAsAction="always"
android:title="" />
</menu>
如果我将菜单项设置为图像或文本,菜单会在 activity 中膨胀,但当我将其指向自定义布局时它不会显示
setSupportActionBar(toolbar);
actionBar = getSupportActionBar();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setOnMenuItemClickListener(this);
switchOnline = (SwitchCompat)toolbar.findViewById(R.id.switch_online);
我的应用主题是基于 AppCompat
由于您使用的是支持操作栏,因此您需要使用 app:actionLayout
来指定您的自定义视图。