studio linearlayout layout_below ejemplos coordinatorlayout constraintlayout constraint appbarlayout and android android-coordinatorlayout android-relativelayout android-support-design

linearlayout - relative layout android



Cómo poner RelativeLayout dentro de CoordinatorLayout (3)

Estoy tratando de recrear el cuadro de búsqueda como lo está en la aplicación de Airbnb para Android. Entonces estoy usando CoorinatorLayout con la barra de herramientas y RecyclerView .

Pero cuando inserto algo dentro del Coordinador además de esas dos cosas, no aparece. Aquí está mi código:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/slidingLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/red" app:layout_scrollFlags="scroll|enterAlways" /> </android.support.design.widget.AppBarLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:layout_marginRight="50dp" android:layout_marginTop="20dp" android:background="@drawable/rounded_background" android:orientation="horizontal" android:padding="6dp" app:layout_scrollFlags="scroll|enterAlways"> <EditText android:id="@+id/search" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="6" android:background="@null" android:fontFamily="sans-serif-light" android:hint="Unesite grad" android:paddingLeft="16dp" android:paddingStart="16dp" /> <ImageView android:id="@+id/cancelSearch" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1" android:padding="10dp" android:src="@drawable/ic_cancel" /> </LinearLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_below="@id/appbar" android:background="#ffffff" app:layout_behavior="@string/appbar_scrolling_view_behavior" />

Pero en realidad, si esto funcionara, tendría la molestia de colocar el cuadro de búsqueda encima de RecyclerView.

He intentado poner todo dentro del RelativeLayout pero eso no funcionó.

Aquí está también la imagen de lo que estoy tratando de hacer

EDITAR:

Aquí está el código con RelativeLayout

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/slidingLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:background="#00000000"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/red" app:layout_scrollFlags="scroll|enterAlways"/> </android.support.design.widget.AppBarLayout> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:layout_marginRight="50dp" android:layout_marginTop="20dp" android:background="@drawable/rounded_background" android:orientation="horizontal" android:padding="6dp" app:layout_scrollFlags="scroll|enterAlways"> <EditText android:id="@+id/search" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="6" android:background="@null" android:fontFamily="sans-serif-light" android:hint="Unesite grad" android:paddingLeft="16dp" android:paddingStart="16dp" /> <ImageView android:id="@+id/cancelSearch" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1" android:padding="10dp" android:src="@drawable/ic_cancel" /> </LinearLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_below="@id/appbar" android:background="#ffffff" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </RelativeLayout>


Estaba tratando de hacer algo un poco similar, pero con un anuncio en la parte inferior de la pantalla. Mi solución fue envolver el RelativeLayout fuera del CoordinatorLayout como tal:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/ad_view"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/my_list_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> <com.google.android.gms.ads.AdView android:id="@+id/ad_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" android:layout_gravity="center|bottom" app:adSize="SMART_BANNER" app:adUnitId="@string/admob_id" /> </RelativeLayout>

La barra de herramientas se oculta correctamente cuando se desplaza dentro de RecyclerView y todo parece funcionar bien. Me imagino que si siguieras un principio similar deberías ser bueno para seguir.


Si desea eliminar el color blanco de la barra de estado, debe eliminar la siguiente línea

<item name="android:statusBarColor">@android:color/transparent</item>`

en v21/styles.xml

Gracias por ejemplo


<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/slidingLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/red" app:layout_scrollFlags="scroll|enterAlways"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="50dp" android:layout_marginRight="50dp" android:layout_marginTop="20dp" android:background="@drawable/rounded_background" android:orientation="horizontal" android:padding="6dp" app:layout_scrollFlags="scroll|enterAlways"> <EditText android:id="@+id/search" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="6" android:background="@null" android:fontFamily="sans-serif-light" android:hint="Unesite grad" android:paddingLeft="16dp" android:paddingStart="16dp"/> <ImageView android:id="@+id/cancelSearch" android:layout_width="0dp" android:layout_height="40dp" android:layout_weight="1" android:padding="10dp" android:src="@drawable/ic_cancel" /> </LinearLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="fill_parent" android:layout_below="@id/appbar" android:background="#ffffff" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout>

Compruebe si esto funciona para usted.