gpt4 book ai didi

java - 上下文操作栏 (CAB) 不覆盖工具栏

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:26 24 4
gpt4 key购买 nike

我真的被这个问题困扰了。

我想在 fragment 中使用 CAB,所以我使用

actionMode = ((MainActivity)getActivity()).startActionMode(actionModeCallbacks);

调用startActionMode

我一直在更改主题并向 xml 样式添加和测试几行代码(一起和分开),例如:

<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowActionBar">false</item>
<item name="windowActionBar">false</item>
<item name="windowActionModeOverlay">true</item>
<item name="windowActionBarOverlay">true</item>

相关信息:

  • 我在里面定义了我的工具栏和 <include/>在我的主要 Activity 中。
  • 工具栏包含在 MainActivity 框架之前、该框架和 DrawerLayout 之间,因此我可以在 fragment 中使用工具栏。
  • 我已经在 Main Activity 中测试了 CAB,但它也达到了上面工具栏。
  • 我还尝试了一种肮脏的解决方法,在 CAB 时切换工具栏可见性被创建/销毁,但它也不起作用!
  • 我正在使用android.view.ActionMode代替 android.support.v7.view.ActionMode因为我不能打电话startActionMode 如果我使用支持库(?)。

我的工具栏(*android.support.v7.widget.Toolbar):

        toolbar = findViewById(R.id.toolbar);

mDrawerLayout = findViewById(R.id.drawer_layout);

toolbar.setTitle(R.string.addWordLabel_Act);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp);

XML(工具栏)

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#FAFAFA"
android:theme="@style/AppTheme.NoActionBar"
app:collapseIcon="@drawable/ic_arrow_back_white_24dp"
app:contentInsetStartWithNavigation="0dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title="@string/addWordLabel_Act"
app:titleTextColor="@color/colorAccent"
/>

</android.support.constraint.ConstraintLayout>

ActionMode.Callback

        private ActionMode actionMode;


private ActionMode.Callback actionModeCallbacks = new ActionMode.Callback()
{
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.action_mode_menu, menu);
return true;
}

@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

switch (item.getItemId()) {
case R.id.share_actionMode:
shareWord();
mode.finish();
return true;
case R.id.deleteWords_actionMode:
deleteWords();
mode.finish();
return true;
default:
return false;
}

}

@Override
public void onDestroyActionMode(ActionMode mode) {
actionMode = null;
}
};

XML (CAB)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item android:title="Share"
android:icon="@drawable/ic_share_white_24dp"
android:id="@+id/share_actionMode"/>

<item android:id="@+id/deleteWords_actionMode"
android:title="Delete"
android:icon="@drawable/ic_round_delete_outline_white_24px"/>

</menu>

还有样式...

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/lightAccent</item>
<item name="colorSecondary">@color/colorSecondary</item>
<item name="android:fontFamily">@font/sans_serif_roboto</item>
<item name="alertDialogTheme">@style/AlertDialogStyle</item>
<item name="android:windowActionModeOverlay">true</item>

</style>

<style name="AppTheme.NoActionBar"
parent="Theme.MaterialComponents.NoActionBar">

</style>

我不知道我还能做什么。

<小时/>

已解决

我完全忘记检查 Manifest,这就是问题所在!AppTheme 设置为 "Theme.AppCompat.Light.NoActionBar"而不是"AppTheme" 。因此,我在 AppTheme 中所做的任何更改都不会在应用程序上生效。

最佳答案

我完全忘记检查 Manifest,这就是问题所在! AppTheme 设置为“Theme.AppCompat.Light.NoActionBar”而不是“AppTheme”。因此,我在 AppTheme 中所做的任何更改都不会在应用程序上生效。

关于java - 上下文操作栏 (CAB) 不覆盖工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53096817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com