当前位置: 首页 > 知识库问答 >
问题:

在工具栏上显示后退箭头

朱淮晨
2023-03-14

我正在从应用程序中的ActionBar迁移到Toolbar。但我不知道如何在工具栏上的后退箭头上显示和设置click event,就像我在Actionbar上做的那样。

使用ActionBar,我调用mActionbar。设置DisplayHomeAsupEnabled(true)。但没有类似的方法。

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


共有3个答案

淳于俊迈
2023-03-14

有很多方法可以实现这一点,以下是我最喜欢的:

布局:

<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
    }
});
程昕
2023-03-14

我看到了很多答案,但这是我之前没有提到的。它从API 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);
}
施敏达
2023-03-14
匿名用户

如果您使用的是ActionBar活动,那么您可以告诉Android使用工具栏作为操作栏,如下所示:

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);

如果您没有使用ActionBarActive,或者如果您想在没有设置为您的Support portActionBarToolbar上获取反箭头,那么您可以使用以下方法:

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系统。支持v7。小装置。工具栏,则应将以下代码添加到应用程序活动:

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

 类似资料:
  • 我怎样才能设置返回箭头在Android工具栏也应用点击监听器?

  • 我真的尝试了一切,试图让我的背向箭头在我的工具栏上工作,但我没有成功。我尝试了覆盖选项ItemSelected。我还尝试了这个线程导航的建议(操作栏的背向箭头)不适用于片段,也没有成功。我也在处理碎片。 注册表活动 显示 和我的activity\u注册xml

  • 我尝试在我的主题中设置以下内容,但似乎并没有改变什么:

  • 我正在尝试在上显示一个以将上一页/活动移动到主页面(第一次打开)。我做不到。 我的代码。 代码在中。

  • 我正在尝试将工具栏的后箭头图标与工具栏标题对齐,但没有找到任何有用的方法来执行此操作, 默认情况下,如果您将设置字幕和标题文本,则后退箭头图标将垂直对齐,例如默认设置为中间位置, 我知道我可以通过在工具栏中提供自定义布局来做到这一点,但我想知道是否有任何默认的方法或行为?

  • 我想在我的应用程序中显示后退箭头按钮,但当我把这个放在代码中时,应用程序崩溃了: style.xml 类(不是片段):