android 変更 アプリのアイコンは、アンドロイドロリポップ以上のアクションバーに表示されません




アクション バー の 表示 (5)

私はapi 19 Kitkatからapi 21 Lollipopに移行します。 そして、私は、アプリアイコンがアクションバーにないことを知りました。 私は、私のアプリがちょっと違っているように感じます。 だからアプリのアイコンを表示する方法はありますか?


以下のようにあなたのアプリでツールバーを使用する必要があります。

styles.xml

<!-- Base application theme. -->
    <style name="AppTheme" parent="AppTheme.Base">
        <!-- Customize your theme here. -->
    </style>

    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    </style>

v21 \ styles.xml

<resources>

    <style name="AppTheme" parent="AppTheme.Base">

        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">true</item>
        <item name="android:windowAllowReturnTransitionOverlap">true</item>
        <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
        <item name="android:windowSharedElementExitTransition">@android:transition/move</item>

        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:windowBackground">@color/windowBackground</item>
        <item name="android:navigationBarColor">@color/navigationBarColor</item>

    </style>

</resources>

あなたのレイアウトでこのようなツールバーを使用する:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false">

    <RelativeLayout xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/windowBackground">

        <android.support.v7.widget.Toolbar 
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        </android.support.v7.widget.Toolbar>



        <FrameLayout
            android:id="@+id/flContent"
            android:visibility="gone"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/toolbar">


        </FrameLayout>


    </RelativeLayout>



</android.support.v4.widget.DrawerLayout>

あなたのJavaファイルで、以下のset iconのコードを書いてください:

toolbar = (Toolbar) findViewById(R.id.toolbar);


        if (toolbar != null) {

            setSupportActionBar(toolbar);

            toolbar.setNavigationIcon(R.drawable.icn_menu);
            //toolbar.setTitle("Title");
            setTitle("Title");
            //toolbar.setSubtitle("Subtitle");
            //toolbar.setLogo(R.drawable.ic_launcher);
        }

これを試して:-

getSupportActionBar.setDisplayHomeAsUpEnabled(true);

マテリアルテーマ(およびそれに基づくAppCompatバージョン21)では、アクションバーはマテリアルデザインガイドラインに従い、 Toolbarを使用しToolbar

  • タイトルとサブタイトル。 タイトルは、ナビゲーション階層内のツールバーの現在の位置とそこに含まれているコンテンツの道標です。 サブタイトルが存在する場合は、現在のコンテンツに関する拡張情報を示す必要があります。 アプリがロゴ画像を使用する場合は、タイトルとサブタイトルを省略することを強く検討する必要があります。

現代のAndroid UIでは、開発者は、アプリケーションアイコンよりもツールバーの視覚的に異なる色のスキームに頼るべきです。 API 21デバイス以降では、アプリケーションのアイコンとタイトルを標準レイアウトとして使用することはお勧めしません。

ただし、アプリケーションアイコンが必要な場合は、 setLogo()が正しいメソッドです。


Lollipop +に私の素晴らしいアプリアイコンを表示したいので、ここで私が使ったことがあります。

mActionBar.setDisplayShowHomeEnabled(true);
mActionBar.setIcon(Drawable); // Or drawable resource id.

ソース: ActionBar#setDisplayShowHomeEnabled(boolean)


これは私のために働いた -

getSupportActionBar().setTitle("Title");
getSupportActionBar().setSubtitle("Subtitle");
getSupportActionBar().setHomeButtonEnabled(true); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | 
ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_USE_LOGO); // Customize if you need to

getSupportActionBar().setIcon(R.drawable.iconhere); // or setLogo

あなたがsetIcon / setLogoを使わないと動作していないように、 setDisplayOptionsを設定することが重要です。 元の回答 - App compat actionbar v21アプリアイコンが表示されない

このコードは私のデバイスで動作しました。 あなたに追加の質問がある場合はお知らせください。





icons