我的活动扩展了AppCompatActivity,我希望在其上设置一个上下文操作栏。 所以这是我的onCreate方法
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
MainActivity.this.startSupportActionMode(new ActionBarCallBack());
我的ActionBarCallBack扩展android.support.v7.view.ActionMode并声明为
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.contextual_menu, menu);
return false; //Here was the error
}
我的清单上设置的主题
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
</style>
清单
<application
android:name=".Application"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
</application>
活动
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main2"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
嘛!我的onCreateActionMode触发正常,但CAB从未显示。
有什么想法吗?
答案 0 :(得分:2)
所以这是错误
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.contextual_menu, menu);
return true; // Now just work fine
}
将windowActionModeOverlay设置为我的Theme.NoActionBar
<item name="windowActionModeOverlay">true</item>
不必像我在stackoverflow线程上看到的那样,从我的toolBar中设置startActionMode()。在android.support.v7.view.ActionMode上,这行对我来说很好。
Main2Activity.this.startSupportActionMode(new ActionBarCallBack()); //android.support.v7.view.ActionMode
答案 1 :(得分:1)
您从ActionMode.Callback中已实现的 onCreateActionMode 方法返回 false 。
尝试将返回值更改为 true
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate menu
return true; // <===== MUST RETURN TRUE
}