Appbarlayout与NestedScrollView重叠

时间:2016-02-20 18:52:11

标签: android android-layout

我有一个协调器布局,它由appbarlayout和nestedscrollview组成。问题是,当我打开活动时,nestedscrollview的某些部分默认隐藏在展开的操作栏后面(图像中显示的差异)。

This is what I get This is what it should be

XML文件:

<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/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

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


    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:contentScrim="@color/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <ImageView
            android:id="@+id/ivToolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:scaleType="fitXY"
            android:alpha="0.6"
            app:layout_collapseParallaxMultiplier="0.7" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:layout_collapseMode="pin"
            android:alpha="1.0"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    </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_behavior="@string/appbar_scrolling_view_behavior">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        ...... 
        .......

我无法弄清楚这里的问题是什么,也无法在网上找到。也许这是一个错误。请检查。

3 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,将NestedScrollView的布局高度设置为android:layout_height =“wrap_content”为我修复了它。

希望有所帮助

答案 1 :(得分:0)

我通过在这个

之类的FrameLayout中使用NestedScrollView解决了这个问题
<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <android.support.v4.widget.NestedScrollView
        android:background="@color/main_color_white"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        ...............
        .............
</android.support.v4.widget.NestedScrollView>
    </FrameLayout>

或者你可以尝试像这样

添加填充到你的NestedScrollView
<android.support.v4.widget.NestedScrollView
        android:background="@color/main_color_white"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="?attr/actionBarSize">
        ................
        ................
</android.support.v4.widget.NestedScrollView>

答案 2 :(得分:0)

不知道为什么,this answer解决了我的问题。 顺便说一下,只有当我更改了nestedScrollView

中任何视图的可见性时,我才遇到这个问题