ToolbarのNavigationIconとして48dpでないアイコンを指定した場合
Toolbar
の48dpのアイコン用領域の中心を指定したアイコンの中心として配置される*1。
上詰めとか、左詰めではないみたい。
Toolbar
のlayout_height
がandroid:layout_height="?attr/actionBarSize"
の場合、48dp用アイコンの領域に対し、左側に4dp
のPadding
を設定しておくとちょうどアイコンの中の中心位置とToolbar
との端との間隔が上下左右から揃う塩梅になった*2。
公式のアイコンだと小さめのアイコンでも48dpサイズ(描画領域を小さくしている)で用意しているので、これでいいのかは少し自信が無いですが...。
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar mToolbar = (Toolbar) findViewById(R.id.custom_toolbar); mToolbar.setNavigationIcon(R.drawable.black_square_30dp); mToolbar.setTitle("PaddingLeft 4dp"); mToolbar.inflateMenu(R.menu.menu_main); }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="@android:color/white" tools:context=".MainActivity" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/custom_toolbar" android:background="@android:color/darker_gray" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:paddingLeft="4dp" > </android.support.v7.widget.Toolbar> </LinearLayout>
アイコンを30dpの黒い正方形にしてPaddingLeftをいじってみる
アイコンを48dpの黒い正方形にしてPaddingLeftをいじってみる
NavigationIcon
の Padding
には 0dp
に指定した段階で実際には4dp
くらい挿入されている気がする...。