我正在尝试“重新创建”(类似于)Play报亭的布局。根据文档,CoordinatorLayout的一般结构是
numpy
除了我查看报亭应用程序外,我能看到的是<CoordinatorLayout>
<!— view that shrinks —>
<AppBarLayout>
<CollapsingToolbarLayout>
…
</CollapsingToolbarLayout>
</AppBarLayout>
<!— view that scrolls —>
<SomeScrollView >
….
</SomeScrollView>
</CoordinatorLayout>
实际上是TabLayout的ViewPager。对于我的特殊情况,我的主要问题是我的SomeScrollView
必须是某种碎片的容器。基本上我想要的是
SomeScrollView
其中A是可折叠部分,B是滚动部分。同样,对于我的情况,B是动态片段的容器。所以A将有一个TabLayout,当用户点击一个标签时,它会导致B中的可见片段发生变化。 B中的片段将包含RecycleView或可滚动的TextView。 (实际上其中一个片段是一个FrameLayout,它包含一个RecycleView和一个TextView,其中任何一个都可以看到)
到目前为止,这是我的代码:
-------
| A |
| |
-------
| B |
| |
-------
请有人帮我完成吗?
答案 0 :(得分:10)
现在,这个library可以完全复制 Play Newstand布局。
非常易于使用,并且具有巨大的自定义范围。我知道你不愿意使用这样的库,但这可以使你的事情变得如此简单。
只需添加此内容,
compile ('com.github.florent37:materialviewpager:1.0.7@aar'){
transitive = true
}
并以XML格式添加布局,
<com.github.florent37.materialviewpager.MaterialViewPager
android:id="@+id/materialViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:viewpager_logo="@layout/header_logo"
app:viewpager_logoMarginTop="100dp"
app:viewpager_color="@color/colorPrimary"
app:viewpager_headerHeight="200dp"
app:viewpager_headerAlpha="1.0"
app:viewpager_hideLogoWithFade="false"
app:viewpager_hideToolbarAndTitle="true"
app:viewpager_enableToolbarElevation="true"
app:viewpager_parallaxHeaderFactor="1.5"
app:viewpager_headerAdditionalHeight="20dp"
app:viewpager_displayToolbarWhenSwipe="true"
app:viewpager_transparentToolbar="true"
app:viewpager_animatedHeaderImage="true"
/>
并按照库页面上的自定义指南进行操作。现在,如果您仍然不相信使用它,您仍然可以转向它并检查库是如何构建的。它可以为您提供足够的洞察力来自己创建(但这将非常耗时)
希望它有所帮助。
答案 1 :(得分:1)
这个ObservableScrollView似乎与你想要的类似:https://github.com/ksoichiro/Android-ObservableScrollView
答案 2 :(得分:1)
This project应该符合您的需求。
要正确使用此行为,您的片段必须使用RecyclerView
或NestedScrollView
。
顺便说一下,它不是一个图书馆。