android - 添加layout_behavior时如何使NestedScrollView透明

标签 android android-nestedscrollview

我想做NestedScrollView透明,但是当我使用 app:layout_behavior="@string/appbar_scrolling_view_behavior" 时然后它添加白色背景。当我删除 layout_behavior ,我的设计坏了,但它显示为透明背景并显示NestedScrollView在 View 的顶部。

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/coordinatorRootLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="?attr/actionBarSize"
    android:background="@android:color/transparent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/android_appbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

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

            <ImageView
                android:id="@+id/parallax_header_imageview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:adjustViewBounds="true"
                android:src="@drawable/greeting_card3"
                app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0.7" />

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

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/nested_scroll_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/android_appbar_layout"
        android:layout_gravity="fill_vertical"
        android:fillViewport="true"
        android:scrollbars="none"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <GridView
            android:id="@+id/gridview_parallax_header"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:horizontalSpacing="16dp"
            android:numColumns="2"
            android:padding="16dp"
            android:scrollbars="vertical"
            android:verticalSpacing="16dp" />
    </android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

enter image description here

最佳答案

当我意识到这个问题时,我正在努力解决同样的问题。
如果将透明背景设置为 NestedScrollView它将是透明的。您将看到 Activity/fragment 背景颜色,但您不会看到来自 AppBarLayout 的图像背景.这不是错误,问题是您的AppBarLayout正在崩溃,尽管您将视差乘数设置为 1,但 View 崩溃和 NestedScrollView填满整个屏幕。
所以,你可以做什么?这很简单!您只需将图像设置在外面并让 AppBarLayout作为占位符,在图像未折叠时查看图像。
这在使用 app:layout_collapseParallaxMultiplier="1.0" 时效果很好因为将图像设置在 AppBarLayout 之外意味着失去图像的视差效果。

关于android - 添加layout_behavior时如何使NestedScrollView透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49095386/

相关文章:

android - 动态设置网格布局的行数和列数

java - arrayList 字符串搜索 : NullPointerException

android - 如何将 bottomsheet 设置到底部导航 View 的顶部

android - 折叠工具栏在 coordinatorlayout 中滚动时不折叠

android - NestedScrollView 内部的 RecyclerView 一次仅显示 1 个元素

java - CountDownTimer 的连续函数

异步任务下载期间android手机卡住

android - MenuItem 未正确设置可见性

android - 如何获得回收商当前可见的项目位置

android - ViewPager 内的水平 RecyclerView 不滚动