2

我需要在工具栏的左侧有一个箭头“后退”按钮,并且由于某种原因它指向右而不是左。

如何将其设置为相反的方向?

这是我的代码:

mToolbar = (Toolbar) findViewById(R.id.machine_tool_bar);        
setSupportActionBar(mToolbar);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

编辑:我的设备语言是从右到左的。我尝试设置 layoutDirection LTR 但它没有帮助..

4

1 回答 1

6

玛雅人,

后退按钮指向右侧的原因是,在 RTL 语言环境中,drawable 来自支持库中的 drawable-ldrtl 文件夹。

我发现最有用的方法是覆盖箭头按钮的可绘制对象。

首先,您需要使用指向左侧的箭头。可以从 Google 的 Material Design 图标中轻松获取: Material Design Icons - Back Arrow

现在,有两种方法可以处理这个问题:

  1. 使用 mToolbar.setNavigationIcon(int resId) 如下:
mToolbar = (Toolbar) findViewById(R.id.machine_tool_bar);  
mToolbar.setNavigationIcon(R.drawable.left_pointing_arrow);
  1. 如果您不想在代码中使用 setNavigationIcon,您可以简单地覆盖可绘制文件夹中的资源。后退箭头在支持库 AppCompat-v7 中找到:/extras/android/support/appcompat-v7/appcompat-v7-{version}

    您正在寻找的drawable的资源名称是: abc_ic_ab_back_mtrl_am_alpha

    您可以简单地将相应的库从支持库复制到您的资源文件夹,并使用您下载的可绘制对象覆盖资产。

    在此处输入图像描述

    请注意,这仅适用于 API-17(其中引入了 RTL 支持),因为文件夹包含“ldrtl”属性。

希望能帮助到你。

于 2015-07-20T11:17:57.197 回答