情境:
如果其中一个toolbars
消失,则第二个toolbar
将调整第一个scrollFlag
的{{1}},而不是自己的toolbar
!< / p>
注意:
奇怪的行为只有在scrollFlag
中的一个toolbars
时才会发生,
如果它们都是gone
,则visible
属性会正确设置为每个工具栏。
示例1:
scrollFlag
在这种情况下运行应用时,当显示其中一个 <android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<android.support.v7.widget.Toolbar
android:id="@+id/appbar_edit_toolbar"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/accent"
app:contentInsetStart="@dimen/content_inset"
app:navigationIcon="@drawable/ic_clear"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:titleTextColor="@android:color/white"
tools:ignore="UnusedAttribute" />
<android.support.v7.widget.Toolbar
android:id="@+id/appbar_normal_toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="?colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:contentInsetStart="@dimen/content_inset"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title="@string/app_name"
tools:ignore="UnusedAttribute" />
</android.support.design.widget.AppBarLayout>
时,toolbars
的行为为scrollFlag
(即:默认行为,滚动时始终显示),而不是在显示appbar_edit_toolbar
时,其appbar_normal_toolbar
行为应与scrollFlag
一样scroll|enterAlways
。
示例2:
xml
在这种情况下运行应用时,当显示其中一个 <android.support.v7.widget.Toolbar
android:id="@+id/appbar_normal_toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="?colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:contentInsetStart="@dimen/content_inset"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title="@string/app_name"
tools:ignore="UnusedAttribute" />
<android.support.v7.widget.Toolbar
android:id="@+id/appbar_edit_toolbar"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/accent"
app:contentInsetStart="@dimen/content_inset"
app:navigationIcon="@drawable/ic_clear"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:titleTextColor="@android:color/white"
tools:ignore="UnusedAttribute" />
</android.support.design.widget.AppBarLayout>
时,其toolbars
行为与scrollFlag
中的行为相同(即:appbar_normal_toolbar
),而不是在显示scroll|enterAlways
时,其appbar_edit_toolbar
行为应该是默认的(即始终显示)。
我尝试动态设置scrollFlag
属性,使scrollFlags
无效,但这不起作用。
我很确定这种行为是因为Android库中的错误而发生的,因为他们不希望我消失其中一个工具栏。
你们觉得怎么样?让我的活动有任何其他方式有2个不同的工具栏,一次只能看到其中一个?
答案 0 :(得分:0)
对我来说工作正确。检查出相同的代码。
<?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="md.com.androidui.MutipleToolbar">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar1"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:title="Scrolled Toolbar"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar2"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorAccent"
app:title="Fixed Toolbar"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</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">
<include layout="@layout/content_mutiple_toolbar" />
</android.support.v4.widget.NestedScrollView>
<强>输出强> 案例1:两者都可见
案例2:滚动工具栏仅可见
案例3:仅固定工具栏可见