2

ツールバーの左側に矢印の「戻る」ボタンが必要ですが、何らかの理由で左ではなく右を指しています。

どうすれば反対方向に設定できますか?

これは私のコードです:

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

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

編集:私のデバイスの言語は右から左です。layoutDirection LTR を設定しようとしましたが、役に立ちませんでした..

4

1 に答える 1

6

マーヤン、

戻るボタンが右を指している理由は、RTL ロケールでは、ドローアブルがサポート ライブラリにある drawable-ldrtl フォルダーから取得されるためです。

私が最も便利だと思ったアプローチは、矢印ボタンのドローアブルをオーバーライドすることです。

まず、左向きの矢印を取る必要があります。Google の Material design icons: Material Design Icons - Back Arrowから簡単に取得できます。

これを処理するには、次の 2 つの方法があります。

  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}

    探しているドローアブルのリソース名は次のとおりです: abc_ic_ab_back_mtrl_am_alpha

    対応するライブラリをサポート ライブラリからリソース フォルダーにコピーするだけで、ダウンロードしたドローアブルでアセットをオーバーライドできます。

    ここに画像の説明を入力

    フォルダーには「ldrtl」属性が含まれているため、これは API-17 (RTL サポートが導入された場所) からのみ機能することに注意してください。

それが役に立てば幸い。

于 2015-07-20T11:17:57.197 に答える