El trabajo de CollapsingTolbar con fagment contiene SwipeRefreshLayout y RecycleView
Hola estoy trabajando en CollapsingToobar
y un Framelayout
. Un Fragment
reemplazará FrameLayout
cuando hay transaction
. Un fragment
contiene SwipeRefreshLayout
y una RecycleView
dentro. Pero siempre que pongo el swipeRefreshLayout
, RecycleView
no aparece (funciona normalmente sin SwipeRefreshLayout
).
Aquí está mi xml para la actividad activity_topstory_detail
- AppBarLayout no siempre vuelve a entrar en desplazamiento hacia abajo
- Las animaciones de elementos predictivos de RecyclerView no funcionan (APPEARING)
- Android: Desplazamiento de problemas con recyclerview dentro de un viewpager
- Ordenar los elementos de una visita de reciclaje mediante arrastrar y soltar
- Cuando getItemCount y método getItemViewType se llaman en Recycler Adapter
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".TopStoryDetailActivity" tools:ignore="MergeRootFrame"> <android.support.design.widget.AppBarLayout android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="@dimen/app_bar_height" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/toolbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="false" app:collapsedTitleTextAppearance="@style/TextAppearance.AppCompat.Title" app:contentScrim="?attr/colorPrimary" app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:toolbarId="@+id/toolbar"> <android.support.v7.widget.Toolbar android:id="@+id/detail_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="parallax" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:id="@+id/topStory_detail_nested_scrollview" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <FrameLayout android:id="@+id/topStory_detail_container" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout>
Mi diseño para el fragmento TopStoryDetailFragment
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/topStory_detail" style="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp" android:textIsSelectable="true" tools:context=".TopStoryDetailFragment"> <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> <include layout="@layout/comment_list" /> </RelativeLayout>
Y mi archivo de presentación de comment_list
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" style="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.widget.SwipeRefreshLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" android:id="@+id/swipeContainer" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v7.widget.RecyclerView android:id="@+id/comment_list" android:layout_width="match_parent" android:layout_height="match_parent" tools:listitem="@layout/comment_list_content"/> </android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout>
¿Alguna manera de hacer que SwipeRefreshLayout
, RecycleView
y CollapsingToolbar
trabajen juntos? Cualquier ayuda es mucho apreciar. Gracias
- Incrustación de anuncios en Recyclerview
- La vista horizontal del reciclador no muestra nada
- Android: RecyclerView dentro del viewpager vertical
- Eliminar un elemento de RecyclerView- Android
- Retos en RecyclerView de Android L
- Horizontal RecyclerView interior vertical ScrollView
- Viewpager está siendo expulsado de la pantalla
- Descripción de RecyclerView.ViewHolder
Para una aplicación en la que estoy actualmente trabajando, tengo un Diseño Trabajando con SwipeRefreshLayout, RecyclerView y CollpasingToolbar.
Este es el diseño principal
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/coordinator"> <include layout="@layout/toolbar"/> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipeContainer" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v7.widget.RecyclerView android:id="@+id/appList" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout> </android.support.design.widget.CoordinatorLayout> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:itemIconTint="#2196f3" app:itemTextColor="#009688" app:headerLayout="@layout/header" app:menu="@menu/drawer" /> </android.support.v4.widget.DrawerLayout>
Este es el diseño de la barra de herramientas de Collapsing:
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/MyAppbar" android:layout_width="match_parent" android:layout_height="256dp" android:fitsSystemWindows="true" app:theme="@style/ThemeOverlay.AppCompat.Dark" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" > <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapse_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/material_deep_teal_500" android:fitsSystemWindows="true" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|center_vertical" android:adjustViewBounds="true" android:transitionName="@string/transition_app_icon" android:fitsSystemWindows="true"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout>
Tal vez ayude
Creo que puedes usar SwipeRefreshLayout, RecycleView y CollapsingToolbar. Miro en su código, el problema es que está utilizando NestedScrollView con recyclerview. Sólo tienes que quitar el NestedScrollview
Para cualquiera que necesite fragmento para trabajar con la barra de herramientas de Collapsing, SwipeRefreshLayout, RecycleView. Me encuentro una manera que puso SwipeRefreshLayout en la actividad principal, un nestedScrollView dentro, un FrameLayout dentro de ScrollView anidado. En el fragmento OnCreatedView, llame a la actividad swipeRefreshLayout. No sé si es un buen enfoque pero funciona
Mi distribución de actividades:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".TopStoryDetailActivity" tools:ignore="MergeRootFrame"> <android.support.design.widget.AppBarLayout android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="@dimen/app_bar_height" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/toolbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:collapsedTitleTextAppearance="@style/TextAppearance.AppCompat.Title" app:contentScrim="?attr/colorPrimary" app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:toolbarId="@+id/toolbar"> <android.support.v7.widget.Toolbar android:id="@+id/detail_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.SwipeRefreshLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" android:id="@+id/swipeContainer" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v4.widget.NestedScrollView android:id="@+id/topStory_detail_nested_scrollview" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <FrameLayout android:id="@+id/topStory_detail_container" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </android.support.v4.widget.NestedScrollView> </android.support.v4.widget.SwipeRefreshLayout> </android.support.design.widget.CoordinatorLayout>
Mi diseño del fragmento
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/topStory_detail" style="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp" android:textIsSelectable="true" tools:context=".TopStoryDetailFragment"> <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> <include layout="@layout/comment_list" />
Mi diseño de la lista de comentarios
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" style="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/comment_list" android:layout_width="match_parent" android:layout_height="match_parent" tools:listitem="@layout/comment_list_content"/> </RelativeLayout>
Llamo el swipeRefreshLayout por
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.topstory_detail, container, false); // Lookup the swipe container view swipeContainer = (SwipeRefreshLayout) getActivity().findViewById(R.id.swipeContainer);
- Problema de instalación de Android: ignorando el filtro de paquete desconocido 'platform-tools'
- Preferencias de Eclipse muestra la pestaña de Android dos veces