2016-06-30 1 views
0

Теперь я хочу, чтобы EditText лежал на правой стороне кнопки назад, но это выглядит следующим образом:Layout в ToolBar

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> 

Как я могу это сделать?

ответ

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 > 
+0

Спасибо! Я использую toEndOF и alignBaseline, и проблема решена. Но возникает новая проблема: когда я нажимаю EditText и после того, как клавиатура выскочила, все в Панели инструментов исчезло. Что не так? –

0

Вместо использования RelativeLayout, вы можете просто использовать LinearLayout с горизонтальной ориентацией. коррекция будет выглядеть следующим образом:

<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> 
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); 
}