1

The code for initializing the RecyclerView

private void initRecyclerView() {
    layoutManager = new GridLayoutManager(this, spanCount);
    mRecyclerRV.setLayoutManager(layoutManager);
    mRecyclerRV.addItemDecoration(new GridSpacingItemDecoration(spanCount, (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, spaceInDp, getResources().getDisplayMetrics()) + 1), false));
    mRecyclerRV.setNestedScrollingEnabled(false);
    mRecyclerRV.setAdapter(mAdapter);
    mRecyclerRV.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
            if (!recyclerView.canScrollVertically(-1)
                    && RecyclerView.SCROLL_STATE_SETTLING == newState
                    && mScrollVerticalDirection
                    && mIsAppBarCollapsed) {
                mAppBarLayout.setExpanded(true);
            }
        }

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            mScrollVerticalDirection = (dy < 0);
        }
    });

    mRecyclerRV.postDelayed(new Runnable() {
        @Override
        public void run() {
            RecyclerView.ViewHolder holder = mRecyclerRV.findViewHolderForAdapterPosition(1);
            if (null != holder) {
                holder.itemView.performClick();
            }
        }
    }, 1000);
}

The layout file is here, and uses CoordinatorLayout

<?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:id="@+id/activity_local_album_coordinator"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:background="@color/colorPageBg">

    <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/activity_local_album_appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/border_bottom_bg"
        android:theme="@style/Wemeet.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/activity_local_album_collapsing"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="@dimen/dp2"
            app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

            <android.support.v7.widget.Toolbar
                android:id="@+id/local_album_toolbar"
                style="@style/WemeetTitlebar"
                android:layout_marginStart="-10dp"
                android:titleTextColor="@color/colorText33"
                app:layout_scrollFlags="scroll"
                android:theme="@style/Wemeet.Toolbar">

                <TextView
                    android:id="@+id/comm_toolbar_title"
                    style="@style/WemeetTitlebar.Title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_gravity="center"
                    android:text="相机胶卷"
                    android:gravity="center"
                    android:singleLine="true" />

            </android.support.v7.widget.Toolbar>

            <LinearLayout
                android:layout_gravity="center_horizontal"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_marginTop="@dimen/dp48"
                android:layout_height="350dp"
                app:layout_scrollFlags="scroll">

                <View
                    android:layout_width="match_parent"
                    android:layout_height="1px"
                    android:background="@color/colorDivider"
                    android:id="@+id/fg_top_border" />

                <com.weiguan.wemeet.basecomm.ui.widget.WemeetVideoView
                    android:visibility="gone"
                    android:layout_gravity="center"
                    android:id="@+id/activity_local_album_preview_video"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">

                </com.weiguan.wemeet.basecomm.ui.widget.WemeetVideoView>

                <ImageView
                    android:id="@+id/activity_local_album_preview_iv"
                    android:layout_gravity="center_horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:scaleType="fitCenter" />
            </LinearLayout>
        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/activity_local_album_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

    </android.support.v7.widget.RecyclerView>

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

When the AppBarLayout is collapsed the RecyclerView scroll happens correctly.

enter image description here

But when the AppBarLayout is expanded, the height of the RecyclerView does not adjust and the scrolling appears abnormal

enter image description here

Ajil O.
  • 6,562
  • 5
  • 40
  • 72
jonathan
  • 151
  • 6

1 Answers1

0

No ways to get it. But resize the recycler view when the app bar is expand or gonna collapse.

jonathan
  • 151
  • 6