Android工具栏始终以图标

时间:2017-09-11 07:28:47

标签: android android-layout android-toolbar

我想把我的标题放在工具栏中。我有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>

2 个答案:

答案 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 = horizo​​ntal '属性放入 - &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>