问题描述
菜单项的标题未显示在片段内。我在菜单文件中有两个项目,第一个是带有图标和标签 showAsAction=always
以在工具栏中显示图标。第二个只有标题。
我不知道这里出了什么问题。
菜单项的所有操作都有效。例如下面。
menu_sale.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:title="Scanner"
android:id="@+id/miScanner"
android:icon="@drawable/ic_baseline_qr_code_scanner"
android:iconTint="@color/white"
app:showAsAction="always"
/>
<item
android:title="Add Credit Record"
android:id="@+id/miAddCreditRecord"
/>
</menu>
没有 showAsAction='always'
的项目未在我的应用中显示标题。
@Override
public void onCreateOptionsMenu(@NonNull Menu menu,@NonNull MenuInflater inflater) {
super.onCreateOptionsMenu(menu,inflater);
inflater.inflate(R.menu.menu_sale,menu);
}
@Override
public boolean onoptionsItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.miScanner:
scanCode();
break;
case R.id.miAddCreditRecord:
showBottomSheetDialog();
break;
}
return super.onoptionsItemSelected(item);
}
我的主题theme.xml
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.AzmiUnaniStore" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
<style name="NoActionBar" parent="Theme.AzmiUnaniStore">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
<style name="BottomSheetDialogTheme" parent="Theme.Design.BottomSheetDialog">
</style>
<style name="BottomSheetStyle" parent="Widget.Design.BottomSheet.Modal">
</style>
</resources>
可能性
标题显示完美,但当操作菜单颜色为白色且背景也是白色时,我看不到标题。
谢谢
解决方法
问题在于弹出菜单中的文本颜色。
在您的 app:popupTheme
中添加 MaterialToolbar
属性。
<com.google.android.material.appbar.MaterialToolbar
app:popupTheme="@style/AppTheme.PopupOverlay"
../>
与:
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary" >
<!-- text color -->
<item name="android:textColor">@color/...</item>
</style>
,
我也遇到了同样的问题。就我而言,我使用了带样式的自定义工具栏。
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ToolbarStyle" />
工具栏样式
<style name="ToolbarStyle" parent="AppTheme">
<item name="android:textColorPrimary">@color/white</item>
</style>
所以我将 android:textColorPrimary
中的 ToolbarStyle
改为黑色,现在它工作正常