ActionBar:如何正确设置home home_as_up_indicator?

ActionBar: How to set home home_as_up_indicator correctly?

我试图在样式中将自定义可绘制对象设置为 home_as_up_indicator,但它没有显示默认操作栏箭头。我的代码:

activity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);

风格:

<style name="MyTheme" parent="Theme.AppCompat">
    <item name="android:homeAsUpIndicator">@drawable/home_as_up_indicator</item>
</style>

清单:

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyTheme" >
<activity
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
</application>

P.S.: 只有在代码中设置主页指示器时才有效,但我并不满意:

getSupportActionBar().setHomeAsUpIndicator(R.drawable.home_as_up_indicator);

你能试试下面的代码吗

<style name="MyTheme" parent="parent="@style/Theme.Sherlock.Light">
    <item name="android:homeAsUpIndicator">@drawable/home_as_up_indicator</item>
    <item name="homeAsUpIndicator">@drawable/home_as_up_indicator</item>
</style>

如果它不起作用,那么您能否提供 AndroidManifest 文件中提到的 targetSdkVersion 和 minSDKVersion。 它可能有助于更多的分析。

很简单。使用下面的代码行:)

getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_launcher);