1

Ниже приведен фрагмент кода, может ли кто-нибудь помочь мне? Моя сворачивающаяся панель инструментов вообще не рушится. Предполагаемое поведение: при прокрутке вверх панель инструментов должна разрушаться от 168dp до 56dp. Но это вовсе не рушится. Спасибо заранее.Recycler view Inside NestedScrollView с координаторомLayout

<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.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/one_primaryColor" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:layout_width="match_parent" 
     android:layout_height="168dp" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="56dp" 
      app:layout_collapseMode="pin"> 

      <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="40dp" 
      android:contentDescription="@string/app_name" 

      app:layout_collapseMode="parallax" 
      android:src="@drawable/logo" /> 

     </android.support.v7.widget.Toolbar> 
    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 
    <android.support.v4.widget.SwipeRefreshLayout 
    android:id="@+id/swipe_refresh_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <android.support.v7.widget.RecyclerView... 
+0

Что ниже AppBarLayout? –

+0

@ АнтонТарасов, пожалуйста, проверьте код сейчас. – inkedTechie

+0

попробуйте это http://antonioleiva.com/collapsing-toolbar-layout/ –

ответ

0

На всякий случай кто-то другой столкнулся с той же проблемой, я отправлю решение своей проблемы. Проблема была в версии support-library, я использовал 22.0.0. В этой версии SwipeRefreshLayout не поддерживает поведение CollapsibleToolbar, это была ошибка, которая была решена в версии 23.0. Итак, я обновил свой support - libaries до 23.0.0, и он был разрешен! Йеай!

1

EDIT:

Я играл с макетом. Вы должны использовать NestedScrollView, чтобы ваш макет выполнял поведение прокрутки CollapsingToolbarLayout. Ниже приведен рабочий код xml:

<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.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/one_primaryColor"> 


     <android.support.design.widget.CollapsingToolbarLayout 
      android:layout_width="match_parent" 
      android:layout_height="168dp" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      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="parallax"> 


       <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:contentDescription="@string/app_name" 
        android:src="@drawable/logo" /> 

      </android.support.v7.widget.Toolbar> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="fill_vertical" 
     android:fillViewport="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/recycler_view" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       /> 

     </RelativeLayout> 

    </android.support.v4.widget.NestedScrollView> 

</android.support.design.widget.CoordinatorLayout> 

Но есть проблема с этим подходом. Если вы положили RecyclerView внутри NestedScrollView, когда коренной корень is CoordinatorLayout. Содержимое Recycler не будет отображаться, хотя все методы адаптера вызываются. Причина заключается в размещении макета прокрутки внутри прокрутки. По этой причине, скорее всего, макет Recycler не отображается. Для этого работала с this.

В вашем коде используйте класс WrappingLinearLayoutManager как менеджер макета для просмотра ресайклера.

//Your custom adapter 
    Adapter adapter = new Adapter(cursor); 
    adapter.setHasStableIds(true); 
    mRecyclerView.setAdapter(adapter); 
    mRecyclerView.setNestedScrollingEnabled(false); 

    int columnCount = getResources().getInteger(R.integer.list_column_count); 
    WrappingLinearLayoutManager wrappingLinearLayoutManager = 
      new WrappingLinearLayoutManager(columnCount, LinearLayout.VERTICAL); 
    mRecyclerView.setLayoutManager(wrappingLinearLayoutManager); 

Это должно решить вашу проблему. Если он все еще не работает, я могу загрузить его где-то для вас.

+0

Извините, чувак, я скопировал ваш код, но он не работает, если он поможет вам проверить его на https://github.com/saikiapriyam/MakeYourAppMaterial – inkedTechie

+0

Где мне нужно видеть в этом проекте? – NightFury

+0

oops, извините, пожалуйста, посмотрите @Lara https://github.com/saikiapriyam/MakeYourAppMaterial/blob/master/src/main/res/layout/material_activity_article_list.xml – inkedTechie

Смежные вопросы