如何在Material Design中创建返回按钮

8

我找不到有关在Material Design中在操作栏中添加此按钮的教程。

样例图片

如何将其添加到Lollipop版本的操作栏中?


1
请发布一些示例代码以展示您尝试过的内容 :) - Dwight Gunning
问题是,我在Lollipop中找不到任何关于这个的操作栏! - masterphp
你正在使用支持库吗?你的Activity继承了什么? - Harin
@Harry - 我有两个活动。我是初学者。我只需要教程... - masterphp
请注意:标题有误导性,这不是“返回”按钮,而是“上一级”按钮。请使用正确的术语。“返回”按钮是每个Android设备都有的按钮。 - axd
5个回答

19

试一试

在onCreate中:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

在您的活动类中(假设您想关闭此活动)

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        finish();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

你有关于这个的例子吗?我尝试了,但是出现了错误:“很遗憾程序停止了”。谢谢。 - masterphp
你能把logcat中的tracelog复制粘贴过来吗? - Tomer Shemesh
masterphp 正在尝试实现 Material Design。它应该是 getSupportActionBar() 而不是 getActionBar()。@TomerShemesh - Pooja

13

Material Design 教程 这将为您提供如何实现 Material 应用程序的简要概述。

如果您正在使用带有 AppCompat 主题的 ActionBarActivity,请使用以下代码:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

同样,您可能需要以相同的方式调用setHomeButtonEnabled(true)

它会像这样:

enter image description here


如果你不需要导航抽屉,就不要实现它。只需在主活动中使用上述代码即可。 - Harin
谢谢,已接受并且现在使用 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 工作正常。 - masterphp

3
在您的onCreate方法中添加以下代码:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);

要进行后退导航,您需要在您的AndroidManifest.xml文件中定义后退导航活动。

<activity 
android:name=".CurrentActivity" 
android:label="@string/app_name"
android:parentActivityName=".BackActivity">
</activity>

2

getSupportActionBar().setDisplayHomeAsUpEnabled(true);可能会产生空指针异常,onCreate()应该像这样。

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setupActionBar();
}

/**
 * Set up the {@link android.app.ActionBar}, if the API is available.
 */
private void setupActionBar() {
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        // Show the Up button in the action bar.
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

1


首先,您需要使用Material Design主题,并且该主题支持ActionBar,例如Theme.AppCompat.LightTheme.AppCompat.Light.DarkActionBar等。
其次,调用ActionBar.setDisplayHomeAsUpEnabled(true);或者ToolBar.setDisplayHomeAsUpEnabled(true);,然后返回图标就会显示。


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