首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在工具栏上显示向后箭头

在工具栏上显示向后箭头
EN

Stack Overflow用户
提问于 2014-10-30 19:19:02
回答 21查看 552.5K关注 0票数 566

我要在我的应用程序中从ActionBar迁移到Toolbar。但我不知道如何像在Actionbar上那样在Toolbar上显示和设置后退箭头上的单击事件。

使用ActionBar时,我调用mActionbar.setDisplayHomeAsUpEnabled(true)。但是没有类似的方法。

有没有人曾经面对过这种情况,并以某种方式找到了解决它的方法?

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2014-10-30 22:55:23

如果你使用的是ActionBarActivity,那么你可以像这样告诉安卓使用Toolbar作为ActionBar

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

然后调用

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

都会起作用的。您也可以在附加到ActionBarActivities的片段中使用它,您可以像这样使用它:

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

如果您没有使用ActionBarActivities,或者如果您想要获取未设置为SupportActionBarToolbar上的后退箭头,则可以使用以下方法:

mActionBar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_back));
mActionBar.setNavigationOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
       //What to do on back clicked
   }
});

如果您使用的是android.support.v7.widget.Toolbar,则应将以下代码添加到AppCompatActivity

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}
票数 1K
EN

Stack Overflow用户

发布于 2016-01-26 00:41:41

我看到了很多答案,但这里是我的答案,以前没有提到过。它通过8+接口工作。

public class DetailActivity extends AppCompatActivity

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

    // toolbar
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    // add back arrow to toolbar
    if (getSupportActionBar() != null){
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // handle arrow click here
    if (item.getItemId() == android.R.id.home) {
        finish(); // close this activity and return to preview activity (if there is any)
    }

    return super.onOptionsItemSelected(item);
}
票数 236
EN

Stack Overflow用户

发布于 2016-07-12 12:54:42

有很多方法可以做到这一点,下面是我最喜欢的:

布局:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:navigationIcon="?attr/homeAsUpIndicator" />

活动:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // back button pressed
    }
});
票数 215
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26651602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档