2015-06-19 17 views
9

Es ist das erste Mal, dass ich CoordinatorLayout verwende, und ich verstehe nicht wirklich, wie es funktioniert.LinearLayout Überlappung Support CoordinatorLayout

Mein Linearlayout überlappt meine Toolbar, als ob ich in einem FrameLayout war, oder RelativeLayout, und ich weiß nicht, wie es zu sagen, unten zu gehen (wie Android: layout_below mit RelativeLayout)

Hier ist mein code:

<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> 

Noch ein Zweifel: Fast alle Beispiele, die ich sah, waren mit CoordinateLayout RecyclerView verwalten. Mein Layout ist kein RecyclerView, nur eine sehr lange Form. Macht es Sinn, es so zu machen?

+0

schließendes Tag ist kaputt, da es keins gibt – pskink

+0

upps mein Fehler beim Einfügen von Code! Behebt –

Antwort

10

Versuchen Sie, Ihren Inhalt in NestedScrollView zu verschachteln. Vergessen Sie nicht, das XML-Tag layout_behavior einzubeziehen.

<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> 

Zusätzliche Ressourcen: http://developer.android.com/reference/android/support/design/widget/AppBarLayout.html

+0

, denn wenn du das allmächtige 'layout_behavior' vergesst, wirst du es schwer haben herauszufinden, warum deine Actionbar unter die Scroll-Ansicht kommt, egal was passiert. Ich bin froh, dass ich diese Lösung gefunden habe, noch glücklicher, dass jetzt 'Fehler beim Auffüllen der Klasse android.support.v7.widget.AppCompatSpinner' hinter mir ist (wage es nicht, eine halbdeckende Farbe an den Hintergrund zu übergeben). Jetzt sollte ich wieder herausfinden, warum die meisten meiner Textansichten das theme/specific textColor-Attribut aufgreifen, während zwei von ihnen das nicht tun. Meine Güte ...Ich vermisse wirklich die guten Android-Tage, als es keinen Material- und Support-Wahnsinn gab. – kellogs

-2

Von developer.android.com

„CoordinatorLayout ist ein Super-angetriebene FrameLayout CoordinatorLayout für zwei primäre Anwendungsfälle gedacht ist. Als Top -level application decor oder chrome layout Als Container für eine bestimmte Interaktion mit einer oder mehreren untergeordneten Ansichten Durch Festlegen von Verhalten für untergeordnete Ansichten eines Coo rdinatorLayout Sie können viele verschiedene Interaktionen innerhalb eines einzelnen Elternteils bereitstellen, und diese Ansichten können auch miteinander interagieren. View-Klassen können ein Standardverhalten angeben, wenn sie als untergeordnetes Objekt eines CoordinatorLayout mit der Annotation DefaultBehavior verwendet werden. Behaviors kann verwendet werden, um eine Vielzahl von Interaktionen und zusätzliche Layout-Modifikationen zu implementieren, die von verschiebbaren Schubladen und Paneelen über wischbare Elemente und Schaltflächen reichen, die sich bei Bewegung und Animation an anderen Elementen festhalten. Kinder eines CoordinatorLayout können einen Anker haben. Diese Ansichts-ID muss einem beliebigen Nachkommen des CoordinatorLayout entsprechen, aber nicht das verankerte Kind selbst oder ein Nachkomme des verankerten Kindes. Dies kann dazu verwendet werden, um Platz Ansichten in Bezug auf andere beliebige Inhalte Scheiben schweben.“

So können Sie zu Linearlayout der Stammansicht ändern (vertikale Ausrichtung) oder Scrollview verwenden, die die Kinder linear anordnen würde.

+3

Das ist keine echte Antwort, du kannst das zitieren, aber du hilfst ihm und der Community überhaupt nicht. – Leonardo

0

späte Antwort, aber es könnte noch jemand helfen.

beilegen alle chidren von CoordinatorLayout in eine LinearLayout, vertikale Ausrichtung.
es ist für mich gearbeitet.

Verwandte Themen