如何在coordinatorLayout中垂直放置布局

时间:2016-10-11 10:05:37

标签: android android-fragments android-coordinatorlayout

我想在片段中实现折叠布局。但是我的collapsingLayout,framelayout(容器)和tablayout的位置就像放置在框架布局中一样。
我想在顶部制作Collapsinglayout,在它下方制作tablayout,并在tablayout下面设置框架布局,保留折叠动画。 (框架布局容器主机由recyclerview组成的各种片段[由于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>

2 个答案:

答案 0 :(得分:1)

CoordinatorLayout是一个动力的FrameLayout:所有孩子都可以通过行为或锚定义他们的位置。查看更多文档,例如this

答案 1 :(得分:1)

您可以轻松地结合使用锚属性和layout_gravity来实现此目的。参见,例如:http://ponshere.in/blog/android-coordinator-layout-gravity-and-alignment/