如何创建类似于Play报亭布局的内容

时间:2015-07-13 16:14:12

标签: android android-layout android-coordinatorlayout

我正在尝试“重新创建”(类似于)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  |
|     |
-------

请有人帮我完成吗?

3 个答案:

答案 0 :(得分:10)

现在,这个library可以完全复制 Play Newstand布局。

enter image description here

非常易于使用,并且具有巨大的自定义范围。我知道你不愿意使用这样的库,但这可以使你的事情变得如此简单。

只需添加此内容,

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)

iPaulPro的

This project应该符合您的需求。 要正确使用此行为,您的片段必须使用RecyclerViewNestedScrollView。 顺便说一下,它不是一个图书馆。

相关问题