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

 <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

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); 
  • Personalizar RecyclerView LayoutManager no fling (sin problemas)
  • Android Recyclerview Layoutmanager's onLayoutChildren llamado cuando se cambia el contenido del elemento
  • Desplazar RecyclerView para mostrar el elemento seleccionado en la parte superior
  • El evento RecyclerView onScrollStateChanged / onScrolled no se activa cuando no se ha producido desplazamiento
  • Obtener encabezados de sección para trabajar con SuperSLiM y RecyclerView
  • Biblioteca avanzada de RecyclerView - ejemplos de código
  • Taps rápidos (clics) en RecyclerView abre varios fragmentos
  • Recyclerview en un fragmento no muestra nada
  • La altura de la vista Recycler anidada no envuelve su contenido
  • (Smooth) ScrollToPosition no funciona correctamente con RecyclerView
  • Recyclerview no llama al método Adapter: onCreateViewHolder, onBindViewHolder,
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.