我正在开发一个应用程序,它有一个页面,其中必须有一个标题,然后是一个 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 会更高,它可以工作吗?
\n\n\n因为垂直可滚动视图不能放入另一个垂直可滚动视图内
\n
事实并非如此,您可以将可滚动视图放入另一个可滚动视图中。管理滚动事件非常困难,而且大多数时候没有必要。您不应该嵌套可滚动视图。
\n\n然而,有一些接口NestedScrollingChild,NestedScrollingParent当正确实现时,可以处理滚动事件。常用的情况是在 中嵌套 aRelativeLayout或。这也是实现类似 Twitter\xe2\x80\x93 布局的方法。NestedScrollViewCoordinatorLayout
您可以在博文中找到信息您可以在宣布 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>\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3787 次 |
| 最近记录: |