如何在Android上更改菜单项点击时的背景颜色

3

当菜单项被选中时,更改工具栏菜单项背景的正确方式是什么?我想将其更改为表示菜单项已选中。我尝试了其他答案,但没有帮助。有没有解决方案?Menu

这里是我的菜单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"
android:layout_gravity="left"
android:textDirection="ltr"
app:itemBackground="@drawable/drawer_list_selector">

    <item
        android:id="@+id/informacije"
        android:layout_gravity="left|start"
        android:checked="true"
        android:textDirection="ltr"
        android:title="O aplikaciji"
        app:showAsAction="never" />
    <item
        android:id="@+id/podesavanja"
        android:layout_gravity="left|start"
        android:textDirection="ltr"
        android:title="Podešavanja"
        app:showAsAction="never" />

还有styles.xml:

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:listDivider">@color/status</item>
    <item name="android:itemBackground">#333333</item>.
    <item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item>
    <item name="dropDownListViewStyle">@style/PopupMenuListView</item>
    <item name="android:activatedBackgroundIndicator">@drawable/drawer_list_selector</item>
    <item name="android:windowContentOverlay">@null</item>        
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

<style name="AppTheme.CustomTheme" >
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowCloseOnTouchOutside">true</item>
</style>

<style name="NavigationViewStyle">
    <item name="android:activatedBackgroundIndicator">@drawable/drawer_list_selector</item>
    <item name="android:textSize">14sp</item> <!-- menu item text size-->
    <item name="android:listPreferredItemHeightSmall">40dp</item><!-- menu item height-->
</style>

<style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textSize">14sp</item>
    <item name="android:listPreferredItemHeightSmall">40dp</item>
    <item name="android:activatedBackgroundIndicator">@drawable/drawer_list_selector</item>
</style>

<style name="PopupMenuListView" parent="@style/Widget.AppCompat.Light.ListView.DropDown">
    <item name="android:divider">#FFFF</item>
    <item name="android:dividerHeight">1dp</item>
    <item name="android:showDividers"></item>
    <item name="android:textDirection">ltr</item>
    <item name="android:activatedBackgroundIndicator">@drawable/drawer_list_selector</item>
</style>

在Activity中:

      @Override
      public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.podesavanja) {

        startActivity(new Intent(this, Podesavanja.class));
        return true;
    }


    if (id == R.id.informacije) {

        startActivity(new Intent(this, OAplikacij.class));
        return true;
    }

    return super.onOptionsItemSelected(item);
}

enter code here
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接