如何在操作栏中添加返回箭头?

3

我想知道如何在操作栏中添加这个箭头。我已经有了一个操作栏,但只能在右侧添加图标,是否可以将标签居中?

enter image description here

5个回答

10
首先,您需要定义父 Activity,以便在其中显示返回按钮。您可以通过清单文件完成此操作。
请在 AndroidManifest.xml 文件中,在 application 标记内的任意位置进行如下操作:
<activity
    android:name="com.example.myfirstapp.DisplayMessageActivity"
    android:label="@string/title_activity_display_message"
    android:parentActivityName="com.example.myfirstapp.MainActivity" >
    <!-- Parent activity meta-data to support 4.0 and lower -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.myfirstapp.MainActivity" />
</activity>

完成这一步后,你只需要在目标ActivityonCreate()方法中直接调用它:
getActionBar().setDisplayHomeAsUpEnabled(true);

如果你在项目中使用了 AppCompat 库:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

你可以参考官方文档中的向上导航 here 以获得更多详细信息。

8

关于Actionbar的箭头图标:

在Activity中:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

在 Fragment 中:
 ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);

捕捉点击事件(在活动中):
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        finish();

        return true;
    }
    return super.onOptionsItemSelected(item);
}   

1
您可以在Java文件中编写以下两行代码:

getActionBar().setDisplayShowHomeEnabled(true);
getActionBar().setHomeButtonEnabled(true)

;


1
您可以通过调用以下代码在操作栏中设置返回箭头:

getActionBar().setDisplayHomeAsUpEnabled(true);

在您的活动onCreate()方法中。

注意:如果您使用的是AppCompatActivity,请改用getSupportActionBar()而不是getActionBar();


0
非常感谢大家,难怪我无法理解,它需要不同的设置,我以为可以在菜单XML上操纵它。
是的,我将我的扩展到AppCompatActivity,并使用您的建议得到了正确的结果。
<activity
        aandroid:name=".TestActivity"
        android:label="@string/title_activity_test">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.testapp.MainActivity" />
    </activity>

然后调用

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

回答自己的问题并将其他人的答案重复一遍,有意义吗?为什么不只选择一个有效的答案呢? - Hadi Satrio

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