18

以下代码会导致 ActionBar 中出现一个后退箭头:

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

我正在寻找可绘制箭头的资源ID,即android.R.drawable.xxx。我需要这个 ID 的原因是我可以在我的应用程序的其他地方手动设置相同的箭头(大小和颜色)。

我尝试制作自己的可绘制对象并使用它,但大小与 ActionBar 中的大小不同。

4

4 回答 4

51

如果您的项目中有支持库,则可以在应用程序的任何位置创建一个后退按钮,如下所示:

<ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="?attr/homeAsUpIndicator"
        android:background="?attr/selectableItemBackgroundBorderless"/>

具体来说,后退箭头的资源是?attr/homeAsUpIndicator.

于 2018-01-19T19:43:43.557 回答
11

如果您需要使用 Android SDK 和 AndroidX 的默认后退箭头,那么您可以通过以下方式访问它

androidx.appcompat.R.drawable.abc_ic_ab_back_material

此外,如果您打算将其用于自定义工具栏,则可以这样设置

toolbar.setNavigationIcon(androidx.appcompat.R.drawable.abc_ic_ab_back_material)

如果您需要设置点击监听器

toolbar.setNavigationOnClickListener { doSomething() }
于 2021-02-23T12:51:52.067 回答
2

您可以使用Android 资产工作室轻松创建后退箭头。

单击res文件夹,然后右键单击drawable -> New -> Vector Asset

在此处输入图像描述

于 2020-04-21T09:34:02.557 回答
0

工具栏中后退按钮的 id 是

安卓.R.id.home

您可以从 Activity 上的 onOptionsItemSelected 方法执行操作。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        //Do your task here.
        return true;
    }
    return super.onOptionsItemSelected(item);
}
于 2019-07-15T12:02:04.107 回答