7

我注意到,如果CoordinatorLayout內部的NestedSCrollView內容不能填滿整個屏幕,它的內容總是與底部對齊。我該如何解決這個問題?Android NestedScrollView對齊頂部的內容

我的代碼:

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

正如你所看到的,NestedScrollView內CardView是200dp高,並對齊底部。

回答

16

使用下列財產android.support.v4.widget.NestedScrollView

android:layout_gravity="fill_vertical" 
0

使suere u設置正確的錨點。

更改*機器人:layout_gravity = 「頂」 *到應用:layout_anchorGravity = 「頂|啓動」

+0

不幸的是,沒有解決它。我應該如何使用它?只需使用app:layout_anchorGravity =「top」而不是android:layout_gravity =「top」?另外,我應該把它放在LinearLayout中嗎? – qwertz

+1

新的編輯沒有修復它 – qwertz

+0

您是否將屬性放在了linearlayout或nestedlayout? – EE66