如何将后退按钮放在ActionBar的左侧

时间:2014-11-28 17:17:30

标签: android xml android-layout android-activity

我正在构建和完成Android应用程序,这是我需要修复它的主要内容之一。

所以,我有一个像这样的动作栏:

<resources>
    <style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
    </style>

    <style name="MyActionBarTheme" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">#F6E6E7</item>
        <item name="android:textSize">10sp</item>
    </style>

    <style name="CustomTabWidget">
        <item name="android:textSize">15sp</item>
    </style>


</resources>

这就是我按下按钮的布局

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Search, should appear as action button -->

    <item android:id="@+id/voltar"
        android:title="Voltar"
        android:icon="@drawable/abc_ic_ab_back_holo_light"
        android:showAsAction="ifRoom" />
    <!-- Settings, should always be in the overflow -->

</menu>

这个按钮标题Voltar位于动作栏的右侧..我该怎么做才能把它放在左侧?

感谢您阅读本文

3 个答案:

答案 0 :(得分:6)

你需要做两件事。首先在您活动的onCreate

中声明这一点
getActionBar().setDisplayHomeAsUpEnabled(true);

然后实现onOptionsItemSelected,以便它将主页作为向上按钮点击事件处理

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home ) {
        finish();
        return true;
    }
    // other menu select events may be present here

    return super.onOptionsItemSelected(item);
}

答案 1 :(得分:5)

在您的活动的onCreate中声明getActionBar().setDisplayHomeAsUpEnabled(true);是正确的。

但是,Nayan在上面的帖子中建议的onOptionsItemSelected实现可以改进,应该按照下面的代码处理:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == android.R.id.home) {
        NavUtils.navigateUpFromSameTask(this);
//            finish();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

id android.R.id.home代表Home或Up按钮。声明getActionBar().setDisplayHomeAsUpEnabled(true);将导致显示向上(向后/向左箭头)按钮。使用NavUtils允许用户在应用程序结构中向上导航一个级别。

有关详细信息,请参阅Android设计上的导航模式: http://developer.android.com/design/patterns/navigation.html#up-vs-back

答案 2 :(得分:1)

默认情况下,Android支持后退按钮。 您不需要手动创建按钮。 只需使用活动onCreate()方法

即可
getActionBar().setDisplayHomeAsUpEnabled(true);