ToolBar与包含片段的内容(LinearLayout)重叠

时间:2016-07-10 16:09:09

标签: android android-layout android-fragments

工具栏超出包含LinearLayout的内容,然后LinearLayout包含fragemnt&一个框架。 为什么?

我正在使用Android Studio 2.2预览版5.

<?xml version="1.0" encoding="utf-8"?>
<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:fitsSystemWindows="true"
  tools:context="com.example.popularmovies2.MainActivity">

  <android.support.design.widget.AppBarLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:theme="@style/AppTheme">

      <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme" />

  </android.support.design.widget.AppBarLayout>

  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:baselineAligned="false"
      android:divider="?android:attr/dividerHorizontal"
      android:orientation="horizontal"
      tools:context="com.example.popularmovies2.MainActivity">

      <fragment
          android:id="@+id/fragment"
          android:name="com.example.popularmovies2.MainActivityFragment"
          android:layout_width="0dp"
          android:layout_height="match_parent"
          android:layout_weight="2"
          tools:layout="@android:layout/list_content" />

      <FrameLayout
          android:id="@+id/movie_detail_fragment"
          android:layout_width="0dp"
          android:layout_height="match_parent"
          android:layout_weight="4" />

   </LinearLayout>
</android.support.design.widget.CoordinatorLayout>

添加图片以供参考。请看看&amp;引导。

image

1 个答案:

答案 0 :(得分:13)

CoordinatorLayout就像FrameLayout一样。它覆盖了它的孩子们。 使用另一个垂直线性布局包装AppBarLayout和LinearLayout,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<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:fitsSystemWindows="true"
  tools:context="com.example.popularmovies2.MainActivity">

  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">

  <android.support.design.widget.AppBarLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:theme="@style/AppTheme">

      <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme" />

  </android.support.design.widget.AppBarLayout>

  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:baselineAligned="false"
      android:divider="?android:attr/dividerHorizontal"
      android:orientation="horizontal"
      tools:context="com.example.popularmovies2.MainActivity">

      <fragment
          android:id="@+id/fragment"
          android:name="com.example.popularmovies2.MainActivityFragment"
          android:layout_width="0dp"
          android:layout_height="match_parent"
          android:layout_weight="2"
          tools:layout="@android:layout/list_content" />

      <FrameLayout
          android:id="@+id/movie_detail_fragment"
          android:layout_width="0dp"
          android:layout_height="match_parent"
          android:layout_weight="4" />

   </LinearLayout>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>