2015-06-19 94 views
9

這是我第一次使用CoordinatorLayout,並且我不太明白它是如何工作的。LinearLayout重疊支持協調器佈局

我的LinearLayout是重疊的工具列的,就好像我是一個FrameLayout裏,或RelativeLayout的,我不知道如何告訴它去以下(如Android:與RelativeLayout的layout_below)

這裏是我的代碼:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="192dp" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleMarginEnd="64dp" 
      app:expandedTitleMarginStart="48dp" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/backdrop" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:fitsSystemWindows="true" 
       android:src="@drawable/logo2" 
       app:layout_collapseMode="pin" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/appbar" 
     android:orientation="vertical" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin"> 

      .... Very Large Form ... 
    </LinearLayout> 
</android.support.design.widget.CoordinatorLayout> 

另一個疑問:我看到的幾乎所有例子都是用CoordinateLayout來管理RecyclerView。 我的佈局不是一個RecyclerView,只是一個非常長的形式。這樣做有意義嗎?

+0

結束標記被打破,因爲沒有開放標記 – pskink

+0

upps我的錯誤粘貼代碼!修正了 –

回答

10

嘗試在NestedScrollView中嵌套您的內容。不要忘記包含layout_behavior XML標籤。

<android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <!-- Your scrolling content --> 

</android.support.v4.widget.NestedScrollView> 

其他資源: http://developer.android.com/reference/android/support/design/widget/AppBarLayout.html

+0

,因爲如果你忘了做全能的'layout_behavior',你將會有一段艱難的時間,弄清楚爲什麼你的操作欄會在滾動視圖下進入,無論如何。我很高興我找到了這個解決方案,現在更加快樂,現在'錯誤的膨脹類android.support.v7.widget.AppCompatSpinner'在我身後(不敢將半透明的顏色傳遞給它的背景)。現在我應該回過頭來看看爲什麼我的大部分文本視圖都會選擇主題/特定的textColor屬性,而其中兩個不會。嘖嘖......我真的很想念那些沒有任何材料和支持瘋狂的好日子。 – kellogs

-2

從developer.android.com

「CoordinatorLayout是一個超級動力的FrameLayout CoordinatorLayout旨在用於兩個基本用例: 作爲頂級應用程序裝飾或鍍鉻佈局 作爲與一個或多個子視圖進行特定交互的容器 通過爲Coo的子視圖指定行爲rdinatorLayout可以在單個父項中提供許多不同的交互,並且這些視圖也可以相互交互。 View類可以使用DefaultBehavior註釋將其用作CoordinatorLayout的子項時指定默認行爲。 行爲可用於實現各種交互和額外的佈局修改,從滑動抽屜和麪板到滑動可忽略的元素以及在移動和動畫時粘到其他元素的按鈕。 CoordinatorLayout的孩子可能有一個錨點。該視圖ID必須對應於CoordinatorLayout的任意後代,但它可能不是被錨定的子對象本身或被錨定的子對象的後代。這可以用來放置浮動的觀點相對於其他任意內容窗格。」

所以,你可以更改根視圖的LinearLayout(垂直方向),或使用滾動視圖,這將線性排列的孩子。

+3

這不是一個真正的答案,你可以引用這個,但是你根本沒有幫助他和社區。 – Leonardo

0

遲到的回答,但它仍可能幫助別人。

附上的CoordinatorLayout所有chidren成LinearLayout垂直方向
它爲我工作。