在CoordinatorLayout和其中的AppBarLayout上滚动到顶部

8
我有这样的布局
    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearMain"
    android:layout_width="match_parent"
    android:layout_height="990dp"
    android:orientation="vertical">

    <android.support.v4.widget.DrawerLayout xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v4.widget.SwipeRefreshLayout
            android:id="@+id/contentView"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <android.support.design.widget.CoordinatorLayout
                android:id="@+id/main_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

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

                    <include
                        android:id="@+id/toolbar"
                        layout="@layout/toolbar" />

                    <FrameLayout
                        android:id="@+id/frameAdvertiseSlider"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        app:layout_scrollFlags="scroll|snap">

                        <android.support.v4.view.ViewPager
                            android:id="@+id/viewPagerAdvertiseSlider"
                            android:layout_width="match_parent"
                            android:layout_height="@dimen/pager_advertise_slider_height"
                            android:layout_gravity="top" />

                        <com.viewpagerindicator.CirclePageIndicator
                            android:id="@+id/indicatorAdvertiseSlider"
                            style="@style/IntroPageIndicator"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_gravity="bottom"
                            android:layout_marginBottom="@dimen/margin_medium" />

                    </FrameLayout>

                    <LinearLayout
                        android:id="@+id/linearLayoutMainCategory"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/home_elements_space"
                        android:orientation="horizontal"
                        app:layout_scrollFlags="scroll|snap">

                        <Button
                            android:id="@+id/buttonMainCategory1"
                            style="@style/ButtonHomeStyle"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1"
                            android:drawableTop="@drawable/ic_category"
                            android:paddingBottom="12dp"
                            android:paddingTop="15dp"
                            android:text="@string/home_category_category" />

                        <Button
                            android:id="@+id/buttonMainCategory2"
                            style="@style/ButtonHomeStyle"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_marginLeft="1dp"
                            android:layout_marginStart="1dp"
                            android:layout_weight="1"
                            android:drawablePadding="5dp"
                            android:drawableTop="@drawable/ic_action"
                            android:paddingTop="15dp"
                            android:text="@string/home_category_action" />

                        <Button
                            android:id="@+id/buttonMainCategory3"
                            style="@style/ButtonHomeStyle"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_marginLeft="1dp"
                            android:layout_marginStart="1dp"
                            android:layout_weight="1"
                            android:drawablePadding="5dp"
                            android:drawableTop="@drawable/ic_new"
                            android:paddingTop="15dp"
                            android:text="@string/home_category_new" />

                        <Button
                            android:id="@+id/buttonMainCategory4"
                            style="@style/ButtonHomeStyle"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_marginLeft="1dp"
                            android:layout_marginStart="1dp"
                            android:layout_weight="1"
                            android:drawablePadding="5dp"
                            android:drawableTop="@drawable/ic_most_selling"
                            android:paddingTop="5dp"
                            android:text="@string/home_category_most_selling" />
                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/linearLayoutBanners"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/home_elements_space"
                        android:layout_marginTop="@dimen/home_elements_space"
                        android:orientation="horizontal"
                        app:layout_scrollFlags="scroll|snap">

                        <ImageView
                            android:id="@+id/imageBanner1"
                            android:layout_width="0dp"
                            android:layout_height="@dimen/banner1_height"
                            android:layout_weight="1"
                            android:scaleType="fitXY" />

                        <LinearLayout
                            android:layout_width="0dp"
                            android:layout_height="@dimen/banner1_height"
                            android:layout_marginLeft="1dp"
                            android:layout_marginStart="1dp"
                            android:layout_weight="1"
                            android:orientation="vertical">

                            <ImageView
                                android:id="@+id/imageBanner2"
                                android:layout_width="match_parent"
                                android:layout_height="@dimen/banner2_height"
                                android:scaleType="fitXY" />

                            <View
                                android:layout_width="match_parent"
                                android:layout_height="1dp"
                                android:background="#00000000" />

                            <ImageView
                                android:id="@+id/imageBanner3"
                                android:layout_width="match_parent"
                                android:layout_height="@dimen/banner2_height"
                                android:scaleType="fitXY" />
                        </LinearLayout>
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/home_elements_space"
                        android:orientation="vertical"
                        app:layout_scrollFlags="scroll|snap">

                        <android.support.design.widget.TabLayout
                            android:id="@+id/tabLayoutNews"
                            style="@style/MyCustomTabLayout"
                            android:layout_width="match_parent"
                            android:layout_height="@dimen/tabs_height"
                            android:background="@color/white"
                            app:tabIndicatorColor="@color/home_tab_indicator"
                            app:tabMode="fixed"
                            app:tabSelectedTextColor="@color/home_tab_color"
                            app:tabTextColor="@color/home_tab_color" />

                        <android.support.v4.view.ViewPager
                            android:id="@+id/viewPagerNews"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:background="@android:color/white" />

                    </LinearLayout>

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


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior">

                    <android.support.design.widget.TabLayout
                        android:id="@+id/tabLayoutPager"
                        style="@style/MyCustomTabLayout"
                        android:layout_width="match_parent"
                        android:layout_height="@dimen/tabs_height"
                        android:background="@color/white"
                        app:tabGravity="center"
                        app:tabIndicatorColor="@color/home_tab_indicator"
                        app:tabMode="scrollable"
                        app:tabSelectedTextColor="@color/home_tab_color"
                        app:tabTextColor="@color/home_tab_color" />

                    <android.support.v4.view.ViewPager
                        android:id="@+id/viewPagerTabs"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" />

                </LinearLayout>

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

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

        <android.support.design.widget.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:fitsSystemWindows="true">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">

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

                    <ImageView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:scaleType="centerCrop"
                        android:src="@drawable/home_profile_background" />

                    <LinearLayout
                        android:id="@+id/linearProfile"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_margin="@dimen/margin_medium"
                        android:orientation="vertical">

                        <rs.netlink.android.widgets.CircleImageView
                            android:id="@+id/circleImageViewProfile"
                            android:layout_width="@dimen/profile_image_size"
                            android:layout_height="@dimen/profile_image_size"
                            android:scaleType="centerCrop"
                            android:src="@drawable/default_profile_image"
                            app:border_color="@color/home_profile_image_ellipse"
                            app:border_width="1dp" />

                        <TextView
                            android:id="@+id/textName"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/margin_small_medium"
                            android:textColor="@color/home_profile_image_ellipse"
                            android:textSize="@dimen/text_small_normal" />

                        <TextView
                            android:id="@+id/textEmail"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/margin_mini_small"
                            android:textColor="@color/home_profile_image_ellipse"
                            android:textSize="@dimen/text_micro_mini" />

                    </LinearLayout>

                </RelativeLayout>

                <ScrollView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="@dimen/margin_small">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:orientation="vertical">

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuHome"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_menu_home"
                            android:drawableStart="@drawable/ic_menu_home"
                            android:text="@string/menu_home"
                            app:font="@string/font_bold" />

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuProfile"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_menu_profile"
                            android:drawableStart="@drawable/ic_menu_profile"
                            android:text="@string/menu_profile"
                            app:font="@string/font_bold" />

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuBasket"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_menu_basket"
                            android:drawableStart="@drawable/ic_menu_basket"
                            android:text="@string/menu_basket"
                            app:font="@string/font_bold" />

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuWishList"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_menu_wish_list"
                            android:drawableStart="@drawable/ic_menu_wish_list"
                            android:text="@string/menu_wish_list"
                            app:font="@string/font_bold" />

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuWhereToBay"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_where_to_bay"
                            android:drawableStart="@drawable/ic_where_to_bay"
                            android:text="@string/menu_where_to_buy"
                            app:font="@string/font_bold" />

                        <View
                            android:layout_width="match_parent"
                            android:layout_height="2dp"
                            android:background="@color/home_menu_separator_line" />

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuSettings"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_menu_settings"
                            android:drawableStart="@drawable/ic_menu_settings"
                            android:text="@string/menu_settings"
                            app:font="@string/font_bold" />

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuCallCenter"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_call_center"
                            android:drawableStart="@drawable/ic_call_center"
                            android:text="@string/menu_call_centar"
                            app:font="@string/font_bold" />

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuAboutUs"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_about_us"
                            android:drawableStart="@drawable/ic_about_us"
                            android:text="@string/menu_about_us"
                            app:font="@string/font_bold" />

                        <rs.netlink.android.widgets.MyButton
                            android:id="@+id/buttonMenuTerms"
                            style="@style/ButtonHomeMenuBorderlessWhite"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:drawableLeft="@drawable/ic_terms"
                            android:drawableStart="@drawable/ic_terms"
                            android:text="@string/menu_terms"
                            app:font="@string/font_bold" />

                    </LinearLayout>
                </ScrollView>
            </LinearLayout>
        </android.support.design.widget.NavigationView>

    </android.support.v4.widget.DrawerLayout>
</LinearLayout>

我正在尝试滚动到CoordinatorLayout或AppBarLayout的顶部(它们都在屏幕顶部)。
当滚动到屏幕底部(在最后一个ViewPager中的元素上,我有RecyclerView),并单击“返回顶部”按钮时,我调用coordinatorLayout.scrollTo(0,0),但它不起作用。
所以我错在哪里了,或者有其他方法可以实现这一点。
谢谢。
1个回答

9

试试这个:

appBarLayout.setExpanded(true, /*animate=*/true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接