Search code examples
androidandroid-recyclerviewandroid-coordinatorlayoutandroid-appbarlayout

Appbar layout not scroll when dyanmically set recyclerview position?


I want to scroll recyclerview with dyanmic position for that i have used below layout but when i am set dynamic position in recyclerview. it is scroll but not above appbar layout.

So how to scroll both recyclerview and appbarlayout when set dynamic position using .

Is it possible parralel scroll if i will set dyamic position.

new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        rclTrendDetail.smoothScrollToPosition (3);
                    }
                }, 2000);


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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"
    xmlns:fbutton="http://schemas.android.com/tools"
    >

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/coordinatorLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/relativeTop"
        android:background="@color/colorWhite"
        android:padding="0dp"
        >

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/colorWhite"
            >

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/collapsingLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/colorWhite"
                app:contentScrim="@color/colorTransparent"
                app:layout_scrollFlags="scroll|exitUntilCollapsed"
                >

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@color/colorWhite"
                    android:orientation="vertical"

                    >

                    <RelativeLayout
                        android:id="@+id/relativeProfile"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:background="@color/colorWhite"

                        >

                        <RelativeLayout
                            android:id="@+id/relativeVideo"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:background="@color/colorWhite"
                            android:visibility="gone"

                            >

                            <com.malmstein.fenster.view.FensterVideoView
                                android:id="@+id/videoplayer"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_centerInParent="true"
                                />

                            <LinearLayout
                                android:id="@+id/linearPlay"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_centerInParent="true"
                                android:background="@drawable/round_button_progress_bar"
                                android:gravity="center"
                                android:orientation="vertical"
                                >

                                <ImageView
                                    android:id="@+id/imgShadow"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_marginBottom="15dp"
                                    android:layout_marginLeft="25dp"
                                    android:layout_marginRight="25dp"
                                    android:layout_marginTop="15dp"
                                    android:src="@drawable/ic_play"
                                    />

                            </LinearLayout>


                            <com.spoof.app.customcontrol.CustomButtonRegular
                                android:id="@+id/gobbleVdoTxt"
                                style="@style/MyCustomButton"
                                android:layout_width="wrap_content"
                                android:layout_height="40dp"
                                android:layout_alignParentBottom="true"
                                android:layout_centerHorizontal="true"
                                android:layout_marginBottom="25dp"
                                android:background="@drawable/round_button_progress_bar"
                                android:paddingLeft="4dp"
                                android:paddingRight="4dp"
                                android:textAllCaps="false"
                                android:textColor="@color/colorWhite"
                                android:textSize="12sp"
                                android:textStyle="normal"
                                android:visibility="gone"
                                />

                            <RelativeLayout
                                android:id="@+id/relativeVideoTime"
                                android:layout_width="match_parent"
                                android:layout_height="30dp"
                                android:layout_alignParentBottom="true"
                                android:layout_marginBottom="20dp"
                                android:visibility="gone"
                                >

                                <RelativeLayout
                                    android:layout_width="match_parent"
                                    android:layout_height="30dp"
                                    android:layout_alignParentLeft="true"
                                    android:layout_centerVertical="true"
                                    android:layout_marginLeft="15dp"
                                    android:layout_marginRight="15dp"
                                    android:layout_toLeftOf="@+id/btnOnSale"
                                    android:background="@drawable/round_button_progress_bar"
                                    >

                                    <com.spoof.app.customcontrol.CustomTextViewRegular
                                        android:id="@+id/txtUpdateTime"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:layout_alignParentLeft="true"
                                        android:layout_centerVertical="true"
                                        android:layout_marginLeft="15dp"
                                        android:maxLines="1"
                                        android:textAllCaps="false"
                                        android:textColor="@color/colorWhite"
                                        android:textSize="12sp"
                                        android:textStyle="normal"
                                        />

                                    <app.minimize.com.seek_bar_compat.SeekBarCompat
                                        android:id="@+id/range_slider5"
                                        android:layout_width="match_parent"
                                        android:layout_height="wrap_content"
                                        android:layout_centerVertical="true"
                                        android:layout_marginLeft="10dp"
                                        android:layout_marginRight="10dp"
                                        android:layout_toLeftOf="@+id/txtTotalTime"
                                        android:layout_toRightOf="@+id/txtUpdateTime"
                                        android:maxHeight="300sp"
                                        app:progressBackgroundColor="@color/colorWhite"
                                        app:progressColor="@color/colorWhite"
                                        app:thumbColor="@color/colorWhite"
                                        />

                                    <com.spoof.app.customcontrol.CustomTextViewRegular
                                        android:id="@+id/txtTotalTime"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:layout_alignParentRight="true"
                                        android:layout_centerVertical="true"
                                        android:layout_marginRight="15dp"
                                        android:maxLines="1"
                                        android:textAllCaps="false"
                                        android:textColor="@color/colorWhite"
                                        android:textSize="12sp"
                                        android:textStyle="normal"
                                        />
                                </RelativeLayout>

                                <com.spoof.app.customcontrol.CustomButtonRegular
                                    android:id="@+id/btnOnSale"
                                    style="@style/MyCustomButton"
                                    android:layout_width="100dp"
                                    android:layout_height="40dp"
                                    android:layout_alignParentRight="true"
                                    android:layout_marginRight="15dp"
                                    android:background="@drawable/round_button_progress_bar"
                                    android:paddingLeft="4dp"
                                    android:paddingRight="4dp"
                                    android:text="@string/on_sale"
                                    android:textAllCaps="false"
                                    android:textColor="@color/colorWhite"
                                    android:textSize="13sp"
                                    android:textStyle="normal"
                                    android:visibility="gone"
                                    />

                                <LinearLayout
                                    android:id="@+id/linearGift"
                                    android:layout_width="50dp"
                                    android:layout_height="wrap_content"
                                    android:layout_alignParentRight="true"
                                    android:layout_marginRight="15dp"
                                    android:background="@drawable/round_button_progress_bar"
                                    android:gravity="center"
                                    android:visibility="gone"
                                    >

                                    <ImageView
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:layout_gravity="center"
                                        android:layout_margin="8dp"
                                        android:src="@drawable/ic_gift"
                                        />


                                </LinearLayout>


                            </RelativeLayout>

                        </RelativeLayout>

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

                            <ImageView
                                android:id="@+id/imgSpoofImage"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_centerInParent="true"
                                android:scaleType="fitXY"
                                />

                            <RelativeLayout
                                android:id="@+id/relativeImgCorner"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content">

                            </RelativeLayout>


                            <com.spoof.app.customcontrol.CustomButtonRegular
                                android:id="@+id/gobbleImgTxt"
                                style="@style/MyCustomButton"
                                android:layout_width="match_parent"
                                android:layout_height="40dp"
                                android:layout_alignParentBottom="true"
                                android:layout_centerHorizontal="true"
                                android:layout_marginBottom="25dp"
                                android:layout_marginLeft="50dp"
                                android:layout_marginRight="50dp"
                                android:alpha="0.5"
                                android:background="@drawable/round_button_progress_bar"
                                android:paddingLeft="4dp"
                                android:paddingRight="4dp"
                                android:textAllCaps="false"
                                android:textColor="@color/colorWhite"
                                android:textSize="12sp"
                                android:textStyle="normal"
                                android:visibility="gone"
                                />


                        </RelativeLayout>


                        <com.spoof.app.customcontrol.CustomButtonRegular
                            android:id="@+id/btnOnSaleImage"
                            style="@style/MyCustomButton"
                            android:layout_width="80dp"
                            android:layout_height="30dp"
                            android:layout_alignParentBottom="true"
                            android:layout_alignParentRight="true"
                            android:layout_margin="15dp"
                            android:background="@drawable/round_button_progress_bar"
                            android:paddingLeft="4dp"
                            android:paddingRight="4dp"
                            android:text="@string/on_sale"
                            android:textAllCaps="false"
                            android:textColor="@color/colorWhite"
                            android:textSize="12sp"
                            android:textStyle="normal"
                            android:visibility="gone"

                            />

                        <LinearLayout
                            android:id="@+id/linearGiftImage"
                            android:layout_width="50dp"
                            android:layout_height="wrap_content"
                            android:layout_alignParentBottom="true"
                            android:layout_alignParentRight="true"
                            android:layout_margin="15dp"
                            android:background="@drawable/round_button_progress_bar"
                            android:gravity="center"
                            android:visibility="gone"

                            >

                            <ImageView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center"
                                android:layout_margin="8dp"
                                android:src="@drawable/ic_gift"
                                />

                        </LinearLayout>

                    </RelativeLayout>

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

                        >

                        <LinearLayout
                            android:id="@+id/linearTop"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_alignParentTop="true"
                            android:orientation="vertical"

                            >

                            <com.spoof.app.customcontrol.CustomTextViewLight
                                android:id="@+id/txtComment"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginLeft="80dp"
                                android:layout_marginTop="5dp"
                                android:gravity="left|center_vertical"
                                android:textAllCaps="false"
                                android:textColor="@color/colorCrownBlack"
                                android:textSize="28sp"
                                />

                            <LinearLayout
                                android:layout_width="match_parent"
                                android:layout_height="30dp"
                                android:layout_gravity="center_vertical"
                                android:layout_marginLeft="80dp"
                                android:orientation="horizontal"
                                >

                                <ImageView
                                    android:id="@+id/imgCrown"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_gravity="center_vertical"
                                    android:scaleType="fitXY"
                                    />

                                <com.spoof.app.customcontrol.CustomTextViewLight
                                    android:id="@+id/txtTotalSpoof"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_gravity="center_vertical"
                                    android:layout_marginLeft="10dp"
                                    android:textAllCaps="false"
                                    android:textColor="@color/colorCrownBlack"
                                    android:textSize="13sp"
                                    />

                            </LinearLayout>

                            <RelativeLayout
                                android:id="@+id/relativeMain"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                >

                                <RelativeLayout
                                    android:id="@+id/relativeImage"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    >

                                    <ImageView
                                        android:id="@+id/imgProfileBG"
                                        android:layout_width="55dp"
                                        android:layout_height="73dp"
                                        android:layout_alignParentLeft="true"
                                        android:layout_marginLeft="15dp"
                                        android:scaleType="fitXY"
                                        />

                                    <de.hdodenhof.circleimageview.CircleImageView
                                        android:id="@+id/imgProfile"
                                        android:layout_width="55dp"
                                        android:layout_height="55dp"
                                        android:layout_alignParentLeft="true"
                                        android:layout_marginLeft="15dp"
                                        android:layout_marginTop="18dp"
                                        app:civ_border_width="4dp"
                                        />
                                </RelativeLayout>

                                <com.spoof.app.customcontrol.CustomTextViewMedium
                                    android:id="@+id/txtUserName"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_alignParentTop="true"
                                    android:layout_marginLeft="10dp"
                                    android:layout_marginTop="20dp"
                                    android:layout_toRightOf="@+id/relativeImage"
                                    android:maxLines="1"
                                    android:textAllCaps="false"
                                    android:textColor="@color/colorDarkGray"
                                    android:textSize="18sp"
                                    />

                                <com.spoof.app.customcontrol.CustomTextViewRegular
                                    android:id="@+id/txtTrendTime"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_below="@+id/txtUserName"
                                    android:layout_marginLeft="10dp"
                                    android:layout_toRightOf="@+id/relativeImage"
                                    android:maxLines="1"
                                    android:text=""
                                    android:textAllCaps="false"
                                    android:textColor="@color/colorLoginText"
                                    android:textSize="12sp"
                                    />

                                <com.spoof.app.customcontrol.CustomButtonRegular
                                    android:id="@+id/btnFollow"
                                    style="@style/MyCustomButton"
                                    android:layout_width="wrap_content"
                                    android:layout_height="30dp"
                                    android:layout_alignParentRight="true"
                                    android:layout_centerVertical="true"
                                    android:background="@drawable/round_button_light_gray"
                                    android:text="@string/following"
                                    android:textAllCaps="false"
                                    android:textColor="@color/colorCrownBlack"
                                    android:textSize="10sp"
                                    android:textStyle="normal"
                                    android:visibility="gone"
                                    />

                                <ImageView
                                    android:layout_width="match_parent"
                                    android:layout_height="wrap_content"
                                    android:layout_alignParentBottom="true"
                                    android:layout_marginTop="5dp"
                                    android:scaleType="fitXY"
                                    android:src="@drawable/ic_separador"
                                    />


                            </RelativeLayout>

                        </LinearLayout>


                    </RelativeLayout>

                </LinearLayout>

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

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

        </android.support.v7.widget.RecyclerView>
    </android.support.design.widget.CoordinatorLayout>
    <LinearLayout
        android:id="@+id/linearShare"
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_margin="5dp"
        android:gravity="center"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/relativeTop"
        >

        <ImageView
            android:id="@+id/imgShare"
            android:layout_width="30dp"
            android:layout_height="32dp"
            android:layout_gravity="center"
            android:src="@drawable/ico_share"
            />
    </LinearLayout>
    <RelativeLayout
        android:id="@+id/relativeHome"
        android:layout_width="61dp"
        android:layout_height="61dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="30dp"
        android:visibility="visible"
        >

        <info.hoang8f.widget.FButton
            android:id="@+id/imgHome"
            fbutton:buttonColor="@color/colorDarkGray"
            fbutton:cornerRadius="5dp"
            fbutton:shadowColor="@color/colorTransparent"
            fbutton:shadowEnabled="false"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_centerInParent="true"
            android:visibility="gone"
            app:shadowHeight="0dp"
            />


        <ImageView
            android:id="@+id/imgIconHome"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_centerInParent="true"

            />

        <com.spoof.app.customcontrol.CustomTextViewMedium
            android:id="@+id/txtTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAlignment="center"
            android:textColor="@color/colorDarkGray"
            android:textSize="16sp"
            android:visibility="gone"
            />

    </RelativeLayout>    

</RelativeLayout>

Solution

  • I don't think that's possible, but if you always want to collapse the appbar, regardless of the position that you choose, you could simply call this after every request for the scroll:

    appBarLayout.setExpanded(true/false)
    

    This will cause the app bar to collapse.

    Further reading: AppBarLayout.setExpanded(boolean)


    Out of scope: You should split your XML files into more layouts and use <include> tag, this will greatly improve readability of those files.