第二个工具栏的scrollFlag属性由第一个工具栏应用

时间:2018-01-17 22:22:16

标签: android scroll visibility android-toolbar android-appbarlayout

情境:

如果其中一个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个不同的工具栏,一次只能看到其中一个?

1 个答案:

答案 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:两者都可见

enter image description here

案例2:滚动工具栏仅可见

enter image description here

案例3:仅固定工具栏可见

enter image description here