簡體   English   中英

如何在導航抽屜布局中更改設置圖標?

[英]How to change setting icon in Navigation Drawer Layout?

我不知道該如何更改紅色圓圈。

圖片

我想就是這樣改變圖標

<?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:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
android:icon="@drawable/icon_logout"
app:showAsAction="never" />
</menu>

但是..不是...所以我該如何改變?

這是我的onCreate。

 protected void onCreate(Bundle paramBundle) {
    super.onCreate(paramBundle);
    setContentView(R.layout.activity_base);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar((Toolbar) toolbar);
    mContext = this;
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);

    drawer.setDrawerListener((DrawerLayout.DrawerListener) toggle);
    toggle.syncState();
    setTitle("For Good Posture");

    setNaviMenu();

    displaySelectedScreen(R.id.nav_home);
    setDisplaySize();
}

更新

這是我的style.xml

<resources>

<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="MyMaterialTheme" parent="MyMaterialTheme.Base">

</style>

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">#fff</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

<style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/black</item>
</style>

<style name="ToolBarStyle" parent="">
    <item name="android:elevation">@dimen/toolbar_elevation</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<dimen name="toolbar_elevation">4dp</dimen>

<style name="RadioButtonStyle" parent="@android:style/Widget.CompoundButton">
    <item name="android:background">@drawable/radiobutton_selector</item>
    <item name="android:button">@null</item>
</style>

<style name="DialogNoTitleBar" parent="android:style/Theme.Dialog">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">true</item>
</style>

<style name="TabLayoutTextStyle">
    <item name="android:textSize">16sp</item>
    <item name="android:textStyle">bold</item>
</style>

<style name="ButtonSubmit">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">match_parent</item>
    <item name="android:background">@drawable/style_btn_login</item>
    <item name="android:paddingTop">5dp</item>
    <item name="android:paddingBottom">5dp</item>
    <item name="android:textSize">17dp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">@color/white</item>
</style>

<style name="MyTheme" parent="android:style/Theme.Holo.Light">
    <item name="android:actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item>
</style>
<style name="ActionButtonOverflowStyle" parent="android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/icon_logout</item>
</style>

</resources>

更新

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.cheon.android.forgoodposture_180102"
android:versionCode="6"
android:versionName="1.6">

<uses-sdk
    android:minSdkVersion="26"
    android:targetSdkVersion="26" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/app_icon_full"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".Login.IntroActivity"
        android:theme="@style/Theme.AppCompat.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".AppInformation.AppInfoActivity" />
    <activity android:name=".Signup.SignupActivity" />
    <activity
        android:name=".SearchPassowrd.SearchPasswordActivity"
        android:theme="@style/MyMaterialTheme" />
    <activity
        android:name=".Login.LoginActivity"
        android:theme="@style/MyMaterialTheme" />
    <activity android:name=".Signup.BeforeConfirmActivity" />
    <activity
        android:name=".Main.BaseActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="@string/title_activity_base"
        android:theme="@style/AppTheme"
        android:windowSoftInputMode="adjustPan|adjustNothing" />
    <activity
        android:name=".WorkoutDiary.SatisfactionActivity"
        android:theme="@style/DialogNoTitleBar" />
    <activity
        android:name=".WorkoutDiary.ImplementActivity"
        android:theme="@style/DialogNoTitleBar" />

    <receiver android:name=".WorkoutDiary.AlarmReceiver" />
</application>
</manifest>

您遇到的問題是因為它不是SETTINGS按鈕,而是溢出按鈕 這就是設置圖標無效的原因。

要更改這三個點,您應為活動主題指定正確的android:actionOverflowButtonStyle樣式,如下所示:

<style name="MyTheme" parent="android:style/Theme.Holo.Light">
     <item name="android:actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item>
</style>

<style name="ActionButtonOverflowStyle" parent="android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/YOUR_DRAWABLE_IMAGE</item>
</style>

我現在得到的結果是:

在此處輸入圖片說明

您可以使用自定義菜單項視圖,另請參見以下鏈接。

https://stablekernel.com/using-custom-views-as-menu-items/

<?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:id="@+id/activity_main_alerts_menu_item"
        android:title="Alerts"
        app:actionLayout="@layout/view_alertsbadge" <!-- important part -->
        app:showAsAction="ifRoom"/>

    <item
        android:id="@+id/activity_main_update_menu_item"
        android:icon="@drawable/ic_refresh_white_24dp"
        android:title="Update"
        app:showAsAction="ifRoom"/>

</menu>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM