android - oncreateviewholder - Vistas arriba y abajo RecyclerView
recyclerview android (3)
¿Qué pasa con el uso de weight
?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://..."
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<RecyclerView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Tengo un RecyclerView que muestra contenido dinámico. Me gustaría mostrar este RecyclerView entre otras vistas. Por ejemplo, una vista que se muestra arriba y otra vista debajo de RecyclerView:
View
RecyclerView
View
Sin embargo, todo lo que intento no parece funcionar y el RecyclerView parece ocupar todo el espacio. Creo que el problema radica en el problema de wrap_content , aunque he intentado algunas soluciones sugeridas, como este LinearLayoutManager personalizado , pero no parece solucionar mi problema.
Intento:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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:fitsSystemWindows="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- AppBar works fine; no issue here -->
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/app_bar_layout">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
app:layout_collapseMode="pin"/>
</android.support.design.widget.AppBarLayout>
<!-- Not displaying; Tried different views -->
<com.chrynan.taginput.view.TextInputWrapper
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_text_container">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_text"/>
</com.chrynan.taginput.view.TextInputWrapper>
<!-- Takes up entire screen space -->
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/swipe_refresh">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/recycler_view"/>
</android.support.v4.widget.SwipeRefreshLayout>
<!-- Not displaying -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text_view"/>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
Pregunta: ¿Hay una manera de colocar y mostrar una Vista arriba y una Vista debajo de un RecyclerView? ¿Si es así, cómo? ¿O es mejor usar un ListView?
Puede que esta no sea la solución típica, pero aún así puede intentarlo.
¿Qué le parece usar un RelativeLayout en lugar de LinearLayout y simplemente configurar el relleno superior e inferior de su SwipeRefreshLayout a la altura de sus vistas de la siguiente manera?
<android.support.design.widget.CoordinatorLayout
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:fitsSystemWindows="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- your app bar -->
<!-- Not displaying; Tried different views -->
<com.chrynan.taginput.view.TextInputWrapper
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:id="@+id/edit_text_container"/>
<!-- Takes up entire screen space -->
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="150dp"
android:paddingBottom="250dp"
android:id="@+id/swipe_refresh">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/recycler_view"/>
</android.support.v4.widget.SwipeRefreshLayout>
<!-- bottom view -->
<TextView
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="250dp"
android:id="@+id/text_view"/>
</RelativeLayout>
use el encabezado y el pie de página para RecyclerView, use viewtype en Recyclerview Adapter y agregue el encabezado y el pie de página. . vea este enlace para obtener más información https://.com/questions/26245139/how-to-create-recyclerview-with-multiple-view-type?rq=1