我需要以编程方式在android中打开/关闭CoordinatorLayout,以及保持滑动。
当用户点击按钮时,布局应在两个布局之间打开,然后再次单击时应关闭coordinatorLayout,将其他两个布局重新组合在一起。
工具栏> CoordinatorLayout> recyclerview>
CoordinatorLayout coordinatorLayout = (CoordinatorLayout) inflate.findViewById(R.id.coordinate_main);
我可以使用coordinatorLayout调用某些方法吗?例如coordinatorLayout.open。
我无法在网上找到任何有关此内容的信息,不确定是否有可能。
答案 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