AppBarLayout 上的 EdgeEffect
Posted
技术标签:
【中文标题】AppBarLayout 上的 EdgeEffect【英文标题】:EdgeEffect on AppBarLayout 【发布时间】:2016-05-28 17:32:36 【问题描述】:我的视图中有一个 CollapsingToolbar
作为父元素,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:tools="http://schemas.android.com/tools"
style="@style/XmatchYmatch"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:layout_
android:layout_
android:fitsSystemWindows="true"
android:transitionName="@string/shared_element_anim_name"
android:background="@color/red">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
style="@style/XmatchYmatch"
android:minHeight="0dp"
app:statusBarScrim="@color/translucent_black"
app:expandedTitleTextAppearance="@android:color/transparent"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
<RelativeLayout
android:id="@+id/toolbar_content_parent"
style="@style/XmatchYmatch"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/toolbar_iv"
style="@style/XmatchYmatch"
android:scaleType="centerCrop"
tools:ignore="ContentDescription"/>
<TextView
android:id="@+id/toolbar_title"
style="@style/ImageText.Title"
android:layout_alignParentBottom="true"
android:maxLines="2"/>
<TextView
android:id="@+id/toolbar_dm"
style="@style/ImageText.Subtitle"
android:layout_above="@id/toolbar_title"
android:maxLines="2"/>
</RelativeLayout>
<include
android:id="@+id/toolbar"
layout="@layout/toolbar"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/XmatchYmatch">
<LinearLayout
android:id="@+id/section_parent"
style="@style/XmatchYmatch.Vert"
android:animateLayoutChanges="true"/>
</android.support.v4.widget.NestedScrollView>
<FrameLayout
style="@style/XmatchYwrap"
android:background="@color/dark_red"
app:layout_anchor="@id/detail_fragment"
app:layout_anchorGravity="bottom|right|end">
<Button
android:id="@+id/button"
style="@style/Subhead"
android:layout_
android:background="?android:attr/selectableItemBackground"
android:text="@string/button_text"
android:textColor="@android:color/white"/>
<ProgressBar
android:id="@+id/sign_progress"
style="@style/ProgressBar"
android:layout_gravity="center"
android:visibility="gone"/>
</FrameLayout>
</android.support.design.widget.CoordinatorLayout>
当我一直滚动到顶部时,Toolbar
下方有边缘效果。像这样:
但我希望边缘效果低于StatusBar
。像这样:
我该怎么做呢?
编辑:我尝试将NestedScrollView
设为我的父母并且它有效。但这不是我想要的层次结构。
【问题讨论】:
试试这个: public void applyKitKatTranslucency(int color) if (Utils.hasKitKat()) if (mTintManager == null) mTintManager = new SystemBarTintManager(this); mTintManager.setStatusBarTintEnabled(true); mTintManager.setStatusBarTintColor(color); getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color)); 您能详细说明边缘效应是什么意思吗?我不知道你的意思。 :) @jmols 当您在 RecyclerView 或 NestedScrollView 上滚动时,您会看到我发布的图片中的效果(第一张图片中的红色下方),而在第二张图片中很难看到pic,状态栏下方的灰色效果。 【参考方案1】:您可以尝试通过添加以下行来更改 AppTheme
中边缘效果的颜色
<item name="android:colorEdgeEffect">@color/my_color</item>
希望这会有所帮助。
【讨论】:
这不是问题要问的。我希望 EdgeEffect 发生在 StatusBar 下方,而不是 AppBarLayout 发生在我身上。以上是关于AppBarLayout 上的 EdgeEffect的主要内容,如果未能解决你的问题,请参考以下文章
使用 RecyclerView + AppBarLayout