如何通过滚动自身来防止隐藏工具栏

时间:2017-06-27 09:17:25

标签: android material-design toolbar appbar

我对CoordinatorLayout和Toolbar的行为有疑问。 像往常一样,我想通过滚动来隐藏/显示工具栏。它工作得很好。但如果我在工具栏上扔它本身就会独立于recyclerView或其他一切隐藏。 如何通过触摸工具栏本身来防止工具栏隐藏/显示行为。

以下是解释我的问题的视频。 here

有关其他信息,请参阅我的布局文件

中的代码段



application.properties




2 个答案:

答案 0 :(得分:1)

是的,我看到你的视频,我过去也有同样的问题 答案是这样的: 当您单击底栏中的图标到新的片段加载时,请执行以下操作:

禁用:

  Toolbar toolbar = findViewById(R.id.toolbar);  // or however you need to do it for your code
    AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
    params.setScrollFlags(0);  // clear all scroll flags

点击底栏中的主页按钮启用滚动工具栏:

对于启用:

params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL
    | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);

答案 1 :(得分:-1)

<ScrollView 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="fill_parent"
    android:layout_height="fill_parent"
    android:fitsSystemWindows="true"
  >
    <RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
        android:background="@color/white">

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="@dimen/action_bar_height"
                android:background="@color/white"
                app:contentInsetStart="0dp"
                app:layout_scrollFlags="scroll|enterAlways|snap">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingLeft="@dimen/padding"
                    android:src="@drawable/logo_dark" />

            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.AppBarLayout>

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <android.support.v7.widget.RecyclerView
                android:id="@+id/list"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
        </FrameLayout>
</ScrollView>