我认为这将是一项简单的任务,但是哦,Android,为什么这么难:facepalm:
我有这个自定义工具栏布局
<android.support.v7.widget.Toolbar
....width/height stuff>
<ConstraintLayout
....width/height stuff>
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
android:gravity="center"
...start_toStartOf="parent"
...end_toEndOf="parent"
...top_toTopOf="parent"
...bottom_toBottomOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
</LinearLayout>
</ContstraintLayout>
</android.support.v7.widget.Toolbar>
如果我没有放置HomeAsUpButton或菜单项,这可以正常工作。
这个后退按钮不是我工具栏布局的一部分,因为我希望我的工具栏实现尽可能“原始”。
后退按钮由
添加actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
它将我的布局推向右边。
问:有什么方法可以忽略将添加到右侧的左键或菜单按钮,并将TextView置于中心位置?我是否真的必须破解它并制作我自己的左键/菜单式布局?
如果我的问题不清楚,请告诉我,我会详细说明。
提前谢谢。
答案 0 :(得分:1)
尝试用以下代码替换Toolbar
XML代码:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@android:color/transparent"
android:elevation="1dp"
app:layout_collapseMode="pin"
app:theme="@style/toolbarTheme">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:maxLines="1"
android:textColor="@color/textPrimary"
android:textSize="@dimen/font_toolbar"
tool:text="Title" />
</android.support.v7.widget.Toolbar>
还设置属性:
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
答案 1 :(得分:0)
要删除自动添加的填充,后退按钮添加您只需将以下属性添加到工具栏:
<android.support.v7.widget.Toolbar
app:contentInsetStartWithNavigation="0dp"
app:contentInsetStart="0dp"
答案 2 :(得分:0)
如果您想在工具栏的中心显示TextView
,则不应使用默认后退按钮和菜单,因为ToolBar
类似于水平LinnerLayout
,您的布局始终位于后退按钮和菜单视图。
[[ arrow ][ your layout ][ menu items ]]
你有两种方法来在工具栏的水平方向显示文字:
ToolBar
中更改内容时,您必须找到工具栏的中间位置并手动将文字放在位置middle - (text.width / 2)