7

Ho notato che il contenuto di una NestedSCrollView all'interno di un CoordinatorLayout si allinea sempre sul fondo se non riempie l'intero schermo. Come posso ripararlo?Android NestedScrollView allinea il contenuto in cima

Il mio codice:

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

Come si può vedere, la CardView all'interno del NestedScrollView è 200dp alta, e allinea sul fondo.

risposta

16

Usare la seguente proprietà in android.support.v4.widget.NestedScrollView

android:layout_gravity="fill_vertical" 
0

Fare in modo che si imposta l'ancora corretta.

Cambio * Android: layout_gravity = "top" * a app: layout_anchorGravity = "top | start"

+0

purtroppo, che non risolvere il problema. Come dovrei usarlo? Basta usare app: layout_anchorGravity = "top" invece di android: layout_gravity = "top"? Inoltre, dovrei metterlo nel LinearLayout? – qwertz

+1

La nuova modifica non lo ha risolto o – qwertz

+0

hai messo gli attributi sul linearlayout o sul nestedlayout? – EE66