【发布时间】:2020-04-22 18:52:35
【问题描述】:
我的活动扩展了 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;
}
我的清单上设置的主题:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
</style>
主活动:
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main2"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
我的 onCreateActionMode 触发器,但 CAB 从未显示。
有什么想法吗?
【问题讨论】:
-
你的主题真的没有父主题吗?我一直认为它必须继承自(在这种情况下)Theme.AppCompat.NoActionBar
-
我用完整的 style.xml 和清单活动声明编辑我的问题
-
看来您的活动主题确实没有父主题。如果添加 parent="Theme.AppCompat.Light.NoActionBar" 会发生什么?
-
Gradle Build 抱怨“找不到属性‘父’的资源标识符”。以防万一我看到我的工具栏继承自 AppTheme.PopupOverlay
-
好的,刚刚看到我编辑我的问题的解决方案。谢谢 0X0nosugar
标签: android contextual-action-bar appcompatactivity