0

У меня есть AppBarLayout с панелью инструментов и 2 кнопками. Он скрывается, когда я просматриваю RecyclerView вверх и показывает, когда я прокручиваю вниз. Проблема заключается в том, что RecyclerView установлен ниже AppBarLayout и сохраняет свою позицию, когда AppBarLayout скрывается, и у меня есть условие, показанное на картинке. Мне нужно, чтобы мой RecyclerView также прокручивался до панели состояния и возвращался в исходное положение при прокрутке вниз. До сих пор я даже не мог найти пример этого. Спасибо. enter image description hereRecyclerView: заполнить экран, когда AppBarLayout прокручивается (скрывается)

Это мт расположение:

<?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" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="ru.skyeng.listening.AudioFiles.AudioListActivity"> 

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appBarLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/colorPrimary" 
    app:elevation="0dp"> 

    <android.support.v7.widget.Toolbar 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
> 

     <ImageButton 
      android:id="@+id/action_settings" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/gear" 
      android:layout_marginEnd="16dp" 
      android:layout_marginRight="16dp" 
      android:layout_gravity="end"/> 
     </android.support.v7.widget.Toolbar> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/button_category" 
      android:layout_width="158dp" 
      android:layout_height="36dp" 
      android:layout_margin="16dp" 
      android:background="@drawable/selector_button_category" 
      android:text="@string/categories" 
      android:textColor="@color/colorBlue2" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true"/> 

     <Button 
      android:id="@+id/button_length" 
      android:layout_width="158dp" 
      android:layout_height="36dp" 
      android:layout_margin="16dp" 
      android:background="@drawable/selector_button_length" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:text="@string/length" 
      android:textColor="@color/colorBlue2"/> 

     <View 
      android:id="@+id/shadow" 
      android:layout_below="@+id/button_length" 
      android:layout_width="match_parent" 
      android:layout_height="20dp" 
      android:background="@drawable/shadow"> 
     </View> 
    </RelativeLayout> 


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


<FrameLayout 
    android:layout_below="@+id/appBarLayout" 
    android:id="@+id/fragment_container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginTop="24dp"> 
</FrameLayout> 

</RelativeLayout> 
+0

вы можете показать нам свой XML? –

+0

вам нужно использовать CoordinatorLayout - CollapsingToolbarLayout - проверьте здесь 9 здесь, как это сделать http://www.androidhive.info/2016/05/android-working-with-card-view-and-recycler-view/ – Tasos

+0

@ Тассо, это определенно помогло. Если вы напишете какое-то объяснение для других, я помету ваш ответ как принятый. Большое спасибо. – Sermilion

ответ

1

Если вы хотите изображение, чтобы показать на ниже панели инструментов. Вы должны попробовать CollpsingLayoutToolbar.

Вот пример. Я надеюсь, что это поможет

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:fitsSystemWindows="true" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:elevation="0dp"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:collapsedTitleGravity="left" 
     app:expandedTitleGravity="bottom|right" 
     app:contentScrim="?attr/colorPrimary" 
     app:expandedTitleTextAppearance="@style/CollapsedAppBarStyle" 
     app:layout_scrollFlags="scroll" 
     app:title="@string/pod"> 

     <ImageView 
      android:id="@+id/collapsing_ImageView" 
      android:layout_width="match_parent" 
      android:layout_height="256dp" 
      android:contentDescription="@string/app_name" 
      android:fitsSystemWindows="true" 
      android:scaleType="centerCrop" 
      android:src="@drawable/bg_image" 
      app:layout_collapseMode="parallax" /> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:minHeight="?attr/actionBarSize" 
      app:layout_collapseMode="pin" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

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

</android.support.design.widget.AppBarLayout> 
+0

Нет, мне нужно, чтобы мой recyclerView переместился вверх, когда моя панель инструментов (AppBarLayout) скрывается. – Sermilion

+0

Вы можете добавить RecyclerView ниже панель Collapsing, и когда вы прокрутите всю панель инструментов, она рухнет, пока не будет видна только RecyclerView. –

+0

Правильно, но recyclerview не должен находиться под AppBarLayout, он должен двигаться вместе с ним. \t @ Tasso дал очень полезную ссылку, которая помогла мне добиться этого. В любом случае, спасибо за предложение. – Sermilion

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

  • Нет связанных вопросов^_^