我正在开发一个应用程序,该应用程序的页面必须有一个标题,后面跟着一个viewpager中的多个回收站视图。但是,我不知道在向下滚动时如何“隐藏”标题。
以下布局不起作用:
assert input('Enter Number: ').isdigit()
因为verticaly可滚动视图不能放在另一个verticaly可伸缩视图中。但是有可能以另一种方式创建这种类型的布局,因为twitter做到了:
那么如何创建这种类型的布局呢?
理论解决方案建议
如果我们有这个布局:
- RecyclerView
- Header
- SlidingTabLayout
- ViewPager
- RecyclerView
当滚动RecyclerView时,我们会手动向上移动每个元素,这样Header会逐渐被“隐藏”,而ViewPager会更高,是否有效?
答案 0 :(得分:3)
因为verticaly可滚动视图不能放在另一个verticaly可分割视图
中
事实并非如此,您可以将可滚动视图放入另一个可滚动视图中。管理滚动事件非常困难,而且大部分时间都不是必须的。您不应嵌套可滚动视图。
但是,有NestedScrollingChild
和NestedScrollingParent
的接口,如果正确实现,可能会导致滚动事件。常见的情况是在RelativeLayout
内嵌套NestedScrollView
或CoordinatorLayout
。这也是你如何实现类似Twitter的布局。
您可以在blogpost宣布Android设计支持库或许多其他教程中找到相关信息。您应该使用的基本布局是
<android.support.design.widget.CoordinatorLayout
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">
<android.support.design.widget.AppBarLayout
android:layout_height="192dp"
android:layout_width="match_parent">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<! -- Your Scrollable View -->
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>