2016-05-30 29 views
4

我的項目只有一個AppBarLayout環繞的工具欄,它下面還有一個NestedScrollView控件,它有一個CardView佈局,包含線性佈局。沒有問題是嵌套滾動重疊,這樣我在圖像顯示 enter image description here嵌套的scrollView無法識別工具欄

,並在運行時它通過應用程序的工具欄好像有這樣的沒有工具欄:

enter image description here

enter image description here

這是我的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app= "http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 
    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     > 



<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/colorPrimary" 
    android:elevation="7dp" 
    app:theme="@style/ThemeOverlay.AppCompat" 
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light" 

    android:titleTextColor="@color/colorPrimary" 
    app:layout_scrollFlags="scroll|enterAlways" 
    ></android.support.v7.widget.Toolbar> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 

     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:nestedScrollingEnabled="true" 

     > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:paddingTop="10dp" 

      > 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
     </LinearLayout> 

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

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

SCR oll_view_item代碼在這裏:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="16dp" 
    android:elevation="5dp" 
    app:cardCornerRadius="5dp"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="15dp" 
    android:orientation="vertical" 

    > 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Dummy Header" 
     android:textColor="@android:color/holo_red_light" 
     android:textSize="20sp" 
     android:textStyle="bold" 
     /> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:text="@string/app_text" 
     /> 

</LinearLayout> 
</android.support.v7.widget.CardView> 
+0

只是一個評論:工具欄上不推薦使用'app:theme'。使用'android:theme',它甚至可以在較低的android版本上運行。 – pdegand59

回答

7

只是圍繞着你的代碼是這樣的LinearLayout:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app= "http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     > 
    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     > 



<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/colorPrimary" 
    android:elevation="7dp" 
    app:theme="@style/ThemeOverlay.AppCompat" 
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light" 

    android:titleTextColor="@color/colorPrimary" 
    app:layout_scrollFlags="scroll|enterAlways" 
    ></android.support.v7.widget.Toolbar> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.widget.NestedScrollView 

     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:nestedScrollingEnabled="true" 

     > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:paddingTop="10dp" 

      > 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
      <include layout="@layout/scroll_view_item" /> 
     </LinearLayout> 

    </android.support.v4.widget.NestedScrollView> 
    </LinearLayout> 
</android.support.design.widget.CoordinatorLayout> 
+0

這個答案幫了我,謝謝。 – Steve

3

你忘了指定ScrollView上的行爲。

此行添加到您的NestedScrollView:

app:layout_behavior="@string/appbar_scrolling_view_behavior" 
1

添加下面一行到你的NestedScrollView

app:layout_behavior="@string/appbar_scrolling_view_behavior"