v7-21 ActionBarActivity未显示左侧的应用程序主图标

dow*_*123 2 android-activity android-actionbar android-actionbar-compat android-actionbaractivity

我实施了一项基本活动

public class MainActivity extends Activity
Run Code Online (Sandbox Code Playgroud)

当我使用如下菜单添加操作栏时,AndroidManifest.xml中定义的应用程序图标显示得很好

<application
android:allowBackup="true"
android:icon="@drawable/logo_green"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
Run Code Online (Sandbox Code Playgroud)

当我尝试更改为android.support.v7.app.ActionBarActivity(并切换到兼容的AppCompat主题,如@ style/Theme.AppCompat.Light.DarkActionBar)时,操作栏中的主应用程序菜单奇怪地消失了

我尝试将它恢复到Oncreate()方法中的位置,但它不起作用

actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setIcon(R.drawable.green_drawable);
Run Code Online (Sandbox Code Playgroud)

动作栏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">
    <!-- Search / will display always -->


    <item android:id="@+id/notification"
        android:icon="@drawable/notification_active"
        android:title="Setup"
        app:showAsAction="never"/>

    <item android:id="@+id/action_search"
        android:icon="@drawable/add_friends"
        android:title="Add Friends"
        app:showAsAction="never"/>


    <item android:id="@+id/action_setup"
        android:icon="@drawable/trackingicon"
        android:title="Setup"
        app:showAsAction="never"/>

    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        app:showAsAction="never" />

    <item android:id="@+id/action_help"
        android:icon="@drawable/helpicon"
        android:title="Contact Support"
        app:showAsAction="ifRoom"/>


</menu>
Run Code Online (Sandbox Code Playgroud)

Vin*_*esh 25

setIcon/setLogo只有设置了DisplayOptions才能使用此方法试试这个 -

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setIcon(R.drawable.ic_launcher);
Run Code Online (Sandbox Code Playgroud)

您还可以设置显示LOGO的选项(只需添加常量ActionBar.DISPLAY_USE_LOGO).更多信息 - displayOptions

  • 我一直在寻找这个答案!谢谢. (2认同)