ToolBar中的布局问题

时间:2016-06-30 13:11:56

标签: android xml android-layout android-studio toolbar

现在我希望EditText位于后面按钮的右侧,但它看起来像这样:

enter image description here

XML代码:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:toolBar="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@color/color_0176da"
android:fitsSystemWindows="true">
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/search_back_button"
        android:layout_width="30dp"
        android:layout_height="29dp"
        android:background="@drawable/back_angle"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"/>
    <EditText
        android:id="@+id/search_editText"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignEnd="@id/search_back_button"
        android:background="@null"
        android:textCursorDrawable="@null"
        android:textColor="@color/color_white"
        android:hint="@string/search_hint"
        android:textColorHint="@color/color_white"/>
</RelativeLayout>

我该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以添加 layout_toRightOf 并删除layout_alignParentStart,layout_alignEnd属性

   <android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:background="@color/color_0176da"
    android:fitsSystemWindows="true" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <Button
            android:id="@+id/search_back_button"
            android:layout_width="30dp"
            android:layout_height="29dp"
            android:layout_centerVertical="true"
            android:background="@drawable/back_angle" />

        <EditText
            android:id="@+id/search_editText"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_toRightOf="@+id/search_back_button"
            android:background="@null"
            android:hint="search_hint"
            android:padding="10dp"
            android:textColor="@color/color_white"
            android:textColorHint="@color/color_white"
            android:textCursorDrawable="@null" />
    </RelativeLayout >
</android.support.v7.widget.Toolbar >

答案 1 :(得分:0)

您可以简单地使用 LinearLayout 水平方向,而不是使用 RelativeLayout 。 修正如下:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:toolBar="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@color/color_0176da"
android:fitsSystemWindows="true">
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/search_back_button"
        android:layout_width="30dp"
        android:layout_height="29dp"
        android:background="@drawable/back_angle"
        android:layout_alignParentStart="true"
        android:layout_centerVertical="true"/>
    <EditText
        android:id="@+id/search_editText"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignEnd="@id/search_back_button"
        android:background="@null"
        android:textCursorDrawable="@null"
        android:textColor="@color/color_white"
        android:hint="@string/search_hint"
        android:textColorHint="@color/color_white"/>
</LinearLayout>

答案 2 :(得分:0)

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {

            EditText tv  = new EditText(this);
            tv.setPadding(7, 0, 7, 0);
            tv.setTextSize(14);
            menu.add(0, 2, 1, "").setActionView(tv).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}