如何以编程方式打开/关闭android Coordinator布局

时间:2015-07-01 09:58:28

标签: android android-layout material-design

我需要以编程方式在android中打开/关闭CoordinatorLayout,以及保持滑动。

当用户点击按钮时,布局应在两个布局之间打开,然后再次单击时应关闭coordinatorLayout,将其他两个布局重新组合在一起。

工具栏> CoordinatorLayout> recyclerview>

CoordinatorLayout coordinatorLayout = (CoordinatorLayout) inflate.findViewById(R.id.coordinate_main);

我可以使用coordinatorLayout调用某些方法吗?例如coordinatorLayout.open。

我无法在网上找到任何有关此内容的信息,不确定是否有可能。

1 个答案:

答案 0 :(得分:1)

要实现您想要的效果,只需在<toolbar>或周围布局上启用布局动画,并在适当的时候将CoordinatorLayout的可见性设置为View.GONE / View.VISIBLE。

RelativeLayout上的示例(应该适用于任何布局类型):

<RelativeLayout
    android:id="@+id/lyt_background"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:animateLayoutChanges="true" >
    <LinearLayout android:id="@+id/myTopLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true">
    ...
    </LinearLayout>
    <CoordinatorLayout android:id="@+id/myToggleLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="id/myTopLayout"
        android:layout_above="id/myBottomLayout"
        android:visibility="gone">
    ...
    </CoordinatorLayout>
    <LinearLayout android:id="@+id/myBottomLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true">
    ...
    </LinearLayout>
</RelativeLayout>

当myToggleLayout变得可见时,当CoordinatorLayout混合时,两个LinearLayout都应该在动画中腾出空间。如果myToggleLayout消失,则LinearLayouts应该动画到位。

我没有特别测试这个布局,但它应该给你一个想法。甚至可以在每个元素上使用自定义过渡,例如LinearLayouts上的调整大小过渡和CoordinatorLayout上的淡入/淡出。

有关布局动画的更多信息,请访问:Android Dev Training - Layout animations