操作模式子菜单和 checkableBehavior
Action mode submenu and checkableBehavior
我对子菜单和 android:checkableBehavior="single" 有一个奇怪的问题。如果菜单在操作栏中,它工作正常,但如果菜单处于操作模式,则显示复选框而不是单选按钮。我使用 AppCompatActivity 并使用 startActionMode() 创建操作模式。
菜单 xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/priority"
android:title="@string/priority"
app:showAsAction="ifRoom">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/low_priority"
android:title="@string/low_pririty"/>
<item
android:id="@+id/normal_priority"
android:title="@string/normal_priority"/>
<item
android:id="@+id/high_priority"
android:title="@string/high_priority"/>
</group>
</menu>
</item>
</menu>
我该如何解决这个问题?
你的菜单使用 startSupportActionMode
方法而不是 startActionMode
方法对我来说效果很好。使用支持库AppCompatActivity
时不应使用startActionMode
方法。
.startSupportActionMode(new android.support.v7.view.ActionMode.Callback() {
@Override
public boolean onCreateActionMode(android.support.v7.view.ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.test_menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(android.support.v7.view.ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(android.support.v7.view.ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(android.support.v7.view.ActionMode mode) {
}
});
我对子菜单和 android:checkableBehavior="single" 有一个奇怪的问题。如果菜单在操作栏中,它工作正常,但如果菜单处于操作模式,则显示复选框而不是单选按钮。我使用 AppCompatActivity 并使用 startActionMode() 创建操作模式。
菜单 xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/priority"
android:title="@string/priority"
app:showAsAction="ifRoom">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/low_priority"
android:title="@string/low_pririty"/>
<item
android:id="@+id/normal_priority"
android:title="@string/normal_priority"/>
<item
android:id="@+id/high_priority"
android:title="@string/high_priority"/>
</group>
</menu>
</item>
</menu>
我该如何解决这个问题?
你的菜单使用 startSupportActionMode
方法而不是 startActionMode
方法对我来说效果很好。使用支持库AppCompatActivity
时不应使用startActionMode
方法。
.startSupportActionMode(new android.support.v7.view.ActionMode.Callback() {
@Override
public boolean onCreateActionMode(android.support.v7.view.ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.test_menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(android.support.v7.view.ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(android.support.v7.view.ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(android.support.v7.view.ActionMode mode) {
}
});