【问题标题】:What is the ID of the back arrow drawable in the ActionBar?ActionBar中可绘制的后退箭头的ID是什么?
【发布时间】:2017-06-28 16:19:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android android-actionbar android-drawable back up-navigation


    【解决方案1】:

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

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

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

    【讨论】:

    • 如何以编程方式获得相同的 ID?
    • @VadimKotov 我已经添加了关于如何以编程方式获取相同 ID 的答案。
    【解决方案2】:

    如果您需要使用 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() }
    

    【讨论】:

      【解决方案3】:

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

      点击res文件夹,然后右键点击drawable -&gt; New -&gt; Vector Asset

      【讨论】:

        【解决方案4】:

        Toolbar中返回按钮的id是

        android.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);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-10-20
          • 1970-01-01
          • 1970-01-01
          • 2022-11-18
          • 2015-09-29
          • 1970-01-01
          相关资源
          最近更新 更多