怎么把toolbar的logo放在右边?
How put the logo of toolbar at right?
我这样做是为了 "inflate" 工具栏上的徽标:
toolbar.setNavigationIcon(R.drawable.navigationIcon);
toolbar.getNavigationIcon().setTint(Color.BLUE);
toolbar.setLogo(R.drawable.logo);
toolbar.getLogo().methodForFloatRightHere();
是否存在一些不在视图上使用 "inflate" 的简单方法?
除非您以 RTL 模式开发应用程序,否则您必须使用自己的视图才能在右侧显示徽标,我认为这不是您真正想要的。您可以将 RelativeLayout
添加到 XML 中的 toolbar
元素,然后将 ImageView
gravity 设置为 RIGHT。
您可以创建一个菜单,其中包含要作为菜单项放在右侧的应用程序图标。
res/menu/main.xml
<?xml version="1.0" encoding="utf-8"?>
<item android:id="@+id/menu_item"
android:icon="@drawable/ic_application_icon"
android:title="@string/aplication_icon"
app:showAsAction="always"/>
然后使用
给它充气
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
您可以使用带有嵌套布局的工具栏,您可以在其中根据需要自定义它,而不是使用默认工具栏。例如
`
<LinearLayout
style="@style/Layout.Wrap"
android:background="@color/sky_blue_dark"
android:gravity="center_vertical"
android:padding="@dimen/fivedp">
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="0.1">
<ImageView
android:id="@+id/fragment_title_bar_menu"
style="@style/Layout.Fill"
android:src="@drawable/ic_side_menu"
android:visibility="gone" />
<ImageView
android:id="@+id/fragment_title_bar_previous"
style="@style/Layout.Fill"
android:src="@drawable/ic_back_selected"
android:visibility="gone" />
</FrameLayout>
<TextView
android:id="@+id/fragment_title_bar_header"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center"
android:layout_gravity="center_vertical|center_horizontal"
android:textColor="@color/dark_blue_title_bar"
android:textSize="@dimen/global_title_text_size"
android:textStyle="bold"
android:visibility="gone" />
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="0.1">
<ImageView
android:id="@+id/fragment_title_bar_popup"
style="@style/Layout.Fill"
android:src="@drawable/ic_benefits_popup_icon"
android:visibility="gone" />
<ImageView
android:id="@+id/fragment_title_bar_cart"
style="@style/Layout.Fill"
android:src="@drawable/ic_title_bar_cart"
android:visibility="gone" />
<ImageView
android:id="@+id/fragment_title_bar_edit_profile"
style="@style/Layout.Fill"
android:src="@drawable/ic_title_bar_edit_profile"
android:visibility="gone" />
<ImageView
android:id="@+id/fragment_title_bar_delete_all"
style="@style/Layout.Fill"
android:src="@drawable/ic_delete_all"
android:visibility="gone" />
</FrameLayout>
</LinearLayout>
`
通过这种方式,您可以在 ToolBar 中定义的布局中执行任何操作
您可以将自定义视图添加到工具栏。
关键是徽标ImageView
上的android:layout_gravity="center"
。
<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>
Keyline 在手机上为 72dp,在平板电脑上为 80dp。这确保添加到工具栏的任何视图(除了 navigation/collapse 图标和菜单项)都在一个矩形中居中,距离左右至少 72/80dp。如果您有更多菜单项并且徽标向左倾斜,请增加。
如果你不想使用XML:
mToolbar.addView(mLogo,
new Toolbar.LayoutParams(Toolbar.LayoutParams.WRAP_CONTENT, Toolbar.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
我这样做是为了 "inflate" 工具栏上的徽标:
toolbar.setNavigationIcon(R.drawable.navigationIcon);
toolbar.getNavigationIcon().setTint(Color.BLUE);
toolbar.setLogo(R.drawable.logo);
toolbar.getLogo().methodForFloatRightHere();
是否存在一些不在视图上使用 "inflate" 的简单方法?
除非您以 RTL 模式开发应用程序,否则您必须使用自己的视图才能在右侧显示徽标,我认为这不是您真正想要的。您可以将 RelativeLayout
添加到 XML 中的 toolbar
元素,然后将 ImageView
gravity 设置为 RIGHT。
您可以创建一个菜单,其中包含要作为菜单项放在右侧的应用程序图标。
res/menu/main.xml
<?xml version="1.0" encoding="utf-8"?>
<item android:id="@+id/menu_item"
android:icon="@drawable/ic_application_icon"
android:title="@string/aplication_icon"
app:showAsAction="always"/>
然后使用
给它充气@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
您可以使用带有嵌套布局的工具栏,您可以在其中根据需要自定义它,而不是使用默认工具栏。例如
`
<LinearLayout
style="@style/Layout.Wrap"
android:background="@color/sky_blue_dark"
android:gravity="center_vertical"
android:padding="@dimen/fivedp">
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_weight="0.1">
<ImageView
android:id="@+id/fragment_title_bar_menu"
style="@style/Layout.Fill"
android:src="@drawable/ic_side_menu"
android:visibility="gone" />
<ImageView
android:id="@+id/fragment_title_bar_previous"
style="@style/Layout.Fill"
android:src="@drawable/ic_back_selected"
android:visibility="gone" />
</FrameLayout>
<TextView
android:id="@+id/fragment_title_bar_header"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center"
android:layout_gravity="center_vertical|center_horizontal"
android:textColor="@color/dark_blue_title_bar"
android:textSize="@dimen/global_title_text_size"
android:textStyle="bold"
android:visibility="gone" />
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="0.1">
<ImageView
android:id="@+id/fragment_title_bar_popup"
style="@style/Layout.Fill"
android:src="@drawable/ic_benefits_popup_icon"
android:visibility="gone" />
<ImageView
android:id="@+id/fragment_title_bar_cart"
style="@style/Layout.Fill"
android:src="@drawable/ic_title_bar_cart"
android:visibility="gone" />
<ImageView
android:id="@+id/fragment_title_bar_edit_profile"
style="@style/Layout.Fill"
android:src="@drawable/ic_title_bar_edit_profile"
android:visibility="gone" />
<ImageView
android:id="@+id/fragment_title_bar_delete_all"
style="@style/Layout.Fill"
android:src="@drawable/ic_delete_all"
android:visibility="gone" />
</FrameLayout>
</LinearLayout>
`
通过这种方式,您可以在 ToolBar 中定义的布局中执行任何操作
您可以将自定义视图添加到工具栏。
关键是徽标ImageView
上的android:layout_gravity="center"
。
<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>
Keyline 在手机上为 72dp,在平板电脑上为 80dp。这确保添加到工具栏的任何视图(除了 navigation/collapse 图标和菜单项)都在一个矩形中居中,距离左右至少 72/80dp。如果您有更多菜单项并且徽标向左倾斜,请增加。
如果你不想使用XML:
mToolbar.addView(mLogo,
new Toolbar.LayoutParams(Toolbar.LayoutParams.WRAP_CONTENT, Toolbar.LayoutParams.WRAP_CONTENT, Gravity.CENTER));