如何将工具栏的徽标放在右边?

Rob*_*oya 2 android toolbar drawable

我这样做是为了"膨胀"工具栏上的徽标:

toolbar.setNavigationIcon(R.drawable.navigationIcon);
toolbar.getNavigationIcon().setTint(Color.BLUE);
toolbar.setLogo(R.drawable.logo);
toolbar.getLogo().methodForFloatRightHere(); 
Run Code Online (Sandbox Code Playgroud)

是否存在一些不在视图上使用"膨胀"的简单方法?

Eug*_*nec 9

您可以将自定义视图添加到工具栏.

关键是android:layout_gravity="center"徽标上的ImageView.

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    app:contentInsetEnd="@dimen/material_content_keyline"
    app:contentInsetStart="@dimen/material_content_keyline"
    app:navigationContentDescription="@string/abc_action_bar_up_description"
    app:navigationIcon="@drawable/abc_ic_ab_back_mtrl_am_alpha">

    <ImageView
        android:id="@+id/toolbar_logo"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:src="@drawable/logo"/>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

Keyline在手机上是72dp,在平板电脑上是80dp.这可以确保添加到工具栏的任何视图(除了导航/折叠图标和菜单项)都在一个矩形中心,从左到右至少72/80dp.如果您有更多菜单项并且徽标向左倾斜,则增加.

如果您不想使用XML:

mToolbar.addView(mLogo,
    new Toolbar.LayoutParams(Toolbar.LayoutParams.WRAP_CONTENT, Toolbar.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
Run Code Online (Sandbox Code Playgroud)