上下文操作模式AppCompatActivity未显示

时间:2016-01-27 12:43:39

标签: android contextual-action-bar appcompatactivity

我的活动扩展了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从未显示。

有什么想法吗?

2 个答案:

答案 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
}