如何在 Android 中创建类似 Twitter 个人资料页面的布局

Rap*_*ard 5 layout android

我正在开发一个应用程序,它有一个页面,其中必须有一个标题,然后是一个 viewpager 中的多个回收站视图。但是,我不知道如何在向下滚动时“隐藏”标题。

以下布局不起作用:

- RecyclerView
    - Header
    - SlidingTabLayout
    - ViewPager
        - RecyclerView
Run Code Online (Sandbox Code Playgroud)

因为一个垂直可滚动视图不能放在另一个垂直可滚动视图中。但是可以以另一种方式创建这种类型的布局,因为 twitter 做到了:

在此处输入图片说明

那么如何实现创建这种类型的布局呢?

理论解决建议

如果我们有这样的布局:

- LinearLayout
    - Header
    - SlidingTabLayout
    - ViewPager
        - RecyclerView
Run Code Online (Sandbox Code Playgroud)

当 RecyclerView 滚动时,我们会手动向上移动每个元素,这样 Header 就会逐渐“隐藏”而 ViewPager 会更高,它可以工作吗?

Lam*_*rak 3

\n

因为垂直可滚动视图不能放入另一个垂直可滚动视图内

\n
\n\n

事实并非如此,您可以将可滚动视图放入另一个可滚动视图中。管理滚动事件非常困难,而且大多数时候没有必要。您不应该嵌套可滚动视图。

\n\n

然而,有一些接口NestedScrollingChildNestedScrollingParent当正确实现时,可以处理滚动事件。常用的情况是在 中嵌套 aRelativeLayout或。这也是实现类似 Twitter\xe2\x80\x93 布局的方法。NestedScrollViewCoordinatorLayout

\n\n

您可以在博文中找到信息您可以在宣布 Android 设计支持库的您应该使用的基本布局如下

\n\n
<android.support.design.widget.CoordinatorLayout\n    xmlns:android="http://schemas.android.com/apk/res/android"\n    xmlns:app="http://schemas.android.com/apk/res-auto"\n    android:layout_width="match_parent"\n    android:layout_height="match_parent">\n\n    <android.support.design.widget.AppBarLayout\n        android:layout_height="192dp"\n        android:layout_width="match_parent">\n\n        <android.support.design.widget.CollapsingToolbarLayout\n            android:layout_width="match_parent"\n            android:layout_height="match_parent"\n            app:layout_scrollFlags="scroll|exitUntilCollapsed">\n\n            <android.support.v7.widget.Toolbar\n                android:layout_height="?attr/actionBarSize"\n                android:layout_width="match_parent"\n                app:layout_collapseMode="pin"/>\n\n        </android.support.design.widget.CollapsingToolbarLayout>\n    </android.support.design.widget.AppBarLayout>\n\n    <! -- Your Scrollable View -->\n    <android.support.v7.widget.RecyclerView\n        android:layout_width="match_parent"\n        android:layout_height="match_parent"\n        app:layout_behavior="@string/appbar_scrolling_view_behavior" />\n\n</android.support.design.widget.CoordinatorLayout>\n
Run Code Online (Sandbox Code Playgroud)\n