7

Ich bemerkte, dass der Inhalt in einer NestedSCrollView in einem CoordinatorLayout immer auf der Unterseite ausgerichtet ist, wenn es nicht den gesamten Bildschirm füllt. Wie kann ich das beheben?Android NestedScrollView Inhalt an der Spitze ausrichten

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" 
    xmlns:card_view="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

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

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

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

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

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

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

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingTop="24dp" 
      android:orientation="vertical"> 

      <android.support.v7.widget.CardView 
       android:layout_width="match_parent" 
       android:layout_height="200dp" 
       android:layout_marginTop="10dp" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       card_view:cardBackgroundColor="@color/white" 
       card_view:cardElevation="2sp" 
       card_view:cardUseCompatPadding="true"> 

      </android.support.v7.widget.CardView> 

      <ListView 
       android:layout_height="match_parent" 
       android:layout_width="match_parent" 
       android:layout_marginTop="10dp" 
       android:divider="@color/black_200" 
       android:dividerHeight="-7dp" 
       android:listSelector="@android:color/transparent" 
       android:cacheColorHint="@android:color/transparent" /> 

     </LinearLayout> 

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

    <android.support.design.widget.FloatingActionButton 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:src="@drawable/ic_navigate" 
     android:layout_margin="16dp" 
     app:backgroundTint="@color/accent_yellow" 
     app:borderWidth="0dp" 
     app:elevation="8dp" 
     app:pressedTranslationZ="12dp" 
     app:fabSize="normal" 
     app:rippleColor="@color/accent_dark_yellow" 
     app:layout_anchor="@id/appbar" 
     app:layout_anchorGravity="bottom|right|end"/> 

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

Wie Sie sehen können, die CardView innerhalb des NestedScrollView ist 200dp hoch und richtet auf der Unterseite.

Antwort

16

Verwenden Sie die folgende Eigenschaft in android.support.v4.widget.NestedScrollView

android:layout_gravity="fill_vertical" 
0

Machen Sie den richtigen Anker.

ändern * android: layout_gravity = "top" * zu App: layout_anchorGravity = "top | start"

+0

leider, dass es nicht beheben war. Wie soll ich es benutzen? Verwenden Sie einfach app: layout_anchorGravity = "top" anstelle von android: layout_gravity = "top"? Sollte ich das auch in das LinearLayout tun? – qwertz

+1

Die neue Bearbeitung hat es auch nicht behoben – qwertz

+0

hast du die Attribute auf dem Linearlayout oder dem Nestedlayout gesetzt? – EE66

Verwandte Themen