我想把我的标题放在工具栏中。我有4个案例要实现,标题应该始终居中:
[< short ]
[< loooong_titleeee...]
[ short ]
[ short +]
下面是我的自定义工具栏布局。 3个案例是完美的,但第二个案例不是,它是后退按钮。我该如何更改布局来解决它?我在布局中尝试了很多阉割,但每次都出错了:)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/iosBackgroundGray"
android:contentInsetEnd="0dp"
android:contentInsetLeft="0dp"
android:contentInsetRight="0dp"
android:contentInsetStart="0dp"
app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp"
app:contentInsetRight="0dp"
app:contentInsetStart="0dp">
<RelativeLayout
android:id="@+id/root_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/left_buttons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:gravity="center">
<TextView
android:id="@+id/left_text_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:gravity="center"
android:textColor="@android:color/holo_blue_dark"
android:textSize="20sp"
android:visibility="gone" />
<ImageButton
android:id="@+id/back_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:padding="10dp"
android:src="@drawable/ic_arrow_back_black_24dp"
android:visibility="gone" />
</LinearLayout>
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:ellipsize="end"
android:maxLines="1"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="gone" />
<LinearLayout
android:id="@+id/right_buttons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_gravity="end"
android:layout_marginRight="10dp">
<TextView
android:id="@+id/right_text_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:enabled="false"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="gone" />
<ImageButton
android:id="@+id/add_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:paddingBottom="15dp"
android:paddingLeft="15dp"
android:paddingTop="15dp"
android:src="@drawable/ic_add_black_36dp"
android:tint="@android:color/holo_blue_dark"
android:visibility="gone" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:background="@color/iosDarkGray" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
答案 0 :(得分:0)
更改标题的textView,如下所示:
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:ellipsize="end"
android:maxLines="1"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="gone"
android:layout_toEndOf="@id/left_buttons"
android:layout_toStartOf="@+id/right_buttons" />
右键按钮布局如下:
<LinearLayout
android:id="@id/right_buttons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_gravity="end"
android:layout_marginRight="10dp">
答案 1 :(得分:0)
&LT;&LT;&LT;但第二个不是,它是后盖按钮。
所以,如果你把长标题放在 - &gt; android:id =“@ + id / left_text_button”&lt; - 这个Textview。和后退按钮是 - &gt;机器人:ID = “@ + ID / back_button”
尝试在此线性布局中将' orientation = horizontal '属性放入 - &gt; android:id =“@ + id / left_buttons”。
我希望这会对你有所帮助。
修改强>
嗯,你正在做的事情非常复杂。试试这个解决方案 在你的情况下,有后退按钮,标题和右添加按钮。所以
对于您的后退按钮,请使用Android的后背。
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
Drawable aerrow= ContextCompat.getDrawable(this,R.drawable.ic_back);
getSupportActionBar().setHomeAsUpIndicator(aerrow);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
和你的xml,::
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#e2b5b5"
android:contentInsetEnd="0dp"
android:contentInsetLeft="0dp"
android:contentInsetRight="0dp"
android:contentInsetStart="0dp"
app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp"
app:contentInsetRight="0dp"
app:contentInsetStart="0dp">
<RelativeLayout
android:id="@+id/root_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:ellipsize="end"
android:maxLines="1"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="visible" />
<ImageButton
android:id="@+id/add_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:paddingBottom="15dp"
android:paddingLeft="15dp"
android:paddingTop="15dp"
android:layout_alignParentRight="true"
android:layout_gravity="end"
android:layout_marginRight="10dp"
android:tint="@android:color/holo_blue_dark"
android:visibility="visible" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:background="#000000" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
</LinearLayout>