我正在开发一个使用 CoordinatorLayout/AppBarLayout
组合的 UI,正如在大多数示例中通常看到的那样,但我有这个要求:我想始终用 View 覆盖 AppBarLayout
。因此,无论发生什么滚动行为,都应该在此 View 下发生。目前,这就是我所看到的:
在这里,你看到的蓝色条是我最想要的。正如你所看到的,它最初是隐藏的,只有当我们将 AppBarLayout
滚动到屏幕外时才会暴露出来。供您引用,这里是此布局的代码,其 id 为 android:id="@+id/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/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.snapsboardmainpage.MainActivity"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="match_parent"
android:layout_height="40dp"
app:layout_scrollFlags="scroll|snap"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="112dp"
android:orientation="vertical"
app:layout_scrollFlags="scroll|snap"
android:background="@android:color/holo_green_light">
</LinearLayout>
<android.support.design.widget.TabLayout
android:id="@+id/id_tab_photosvideos_albums"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|snap">
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.design.widget.TabLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/nested_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v4.view.ViewPager
android:id="@+id/id_viewpager_photosvideos_albums"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</android.support.v4.widget.NestedScrollView>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="vertical"
android:layout_gravity="top"
app:layout_behavior="com.example.snapsboardmainpage.TopActionBarBehavior"
android:background="@android:color/holo_blue_light">
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="56dp"
android:orientation="vertical"
android:layout_gravity="bottom"
android:background="@android:color/holo_orange_light">
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
我怎样才能实现这种覆盖行为?(如果这个蓝色条可以保留为
CoordinatorLayout
的直接子代,那就更好了) 最佳答案
虽然这个问题看起来很困难,但答案却出奇的简单:
android:elevation="8dp"
是的,就是这样。只需将它设置在必须覆盖
AppBarLayout
的 View 上。关于android - 将 View 放在 AppBarLayout 之上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47721461/