如何在 coordinatorLayout 中垂直定位布局
How to position layouts vertically in coordinatorLayout
我想在我的 fragment.However 中实现折叠布局我的 collapsingLayout、framelayout(容器)和 tablayout 的位置就像它们放置在框架布局中一样。
我想在顶部制作 Collapsinglayout,在它下面制作 tablayout,在 tablayout 下面制作框架布局容器,保留折叠动画。
(frame布局容器承载由recyclerview组成的各种fragment[因为varioius自定义手势,不考虑viewpager])
fragment_layout.xml
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/appBgColor"
android:clickable="true"
tools:context="com.lunchpoint.fragments.RestaurantFragment"
>
<android.support.design.widget.AppBarLayout
android:id="@+id/id_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:fitsSystemWindows="true"
>
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="310dip"
>
<!--Header layout-->
</RelativeLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="16dip"
android:layout_marginLeft="16dip"
android:layout_marginRight="16dip"
android:layout_marginStart="16dip"
app:tabGravity="fill"
app:tabMinWidth="0dip"
app:tabMode="scrollable"
app:tabPaddingEnd="1dp"
app:tabPaddingStart="1dp"
/>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</android.support.design.widget.CoordinatorLayout>
CoordinatorLayout 是一个强大的 FrameLayout:所有子元素都可以通过行为或锚点定义它们的位置。查看更多文档,例如 this.
您可以轻松地结合使用锚点属性和 layout_gravity 来实现这一点。参见,例如:http://ponshere.in/blog/android-coordinator-layout-gravity-and-alignment/
我想在我的 fragment.However 中实现折叠布局我的 collapsingLayout、framelayout(容器)和 tablayout 的位置就像它们放置在框架布局中一样。
我想在顶部制作 Collapsinglayout,在它下面制作 tablayout,在 tablayout 下面制作框架布局容器,保留折叠动画。
(frame布局容器承载由recyclerview组成的各种fragment[因为varioius自定义手势,不考虑viewpager])
fragment_layout.xml
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/appBgColor"
android:clickable="true"
tools:context="com.lunchpoint.fragments.RestaurantFragment"
>
<android.support.design.widget.AppBarLayout
android:id="@+id/id_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:fitsSystemWindows="true"
>
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="310dip"
>
<!--Header layout-->
</RelativeLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="16dip"
android:layout_marginLeft="16dip"
android:layout_marginRight="16dip"
android:layout_marginStart="16dip"
app:tabGravity="fill"
app:tabMinWidth="0dip"
app:tabMode="scrollable"
app:tabPaddingEnd="1dp"
app:tabPaddingStart="1dp"
/>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</android.support.design.widget.CoordinatorLayout>
CoordinatorLayout 是一个强大的 FrameLayout:所有子元素都可以通过行为或锚点定义它们的位置。查看更多文档,例如 this.
您可以轻松地结合使用锚点属性和 layout_gravity 来实现这一点。参见,例如:http://ponshere.in/blog/android-coordinator-layout-gravity-and-alignment/