【问题标题】:app:layout_scrollFlags="scroll|enterAlways" doesn't works with LinearLayoutapp:layout_scrollFlags="scroll|enterAlways" 不适用于 LinearLayout
【发布时间】:2016-12-02 12:19:52
【问题描述】:

我已经开始研究 Android 材料设计支持库,作为一个新手,我有一些困惑。而且,需要你的帮助。 :)

1) 是否可以将 layout_scrollFlags="scroll|enterAlways" 与 LinearLayout 一起使用?

2) 我想要一个位于工具栏下方的 LinearLayout。我使用 AppBarLayout 实现了它,但我想在滚动 LinearLayout 下面的内容时滚动 LinearLayout 而不是 Toolbar。在 LinearLayout 上使用 layout_scrollFlags="scroll|enterAlways" 不起作用。

3) 我们可以在 CoordinatorLAyout 中使用多个 AppBarLayout 和在 AppBarLayout 中使用 Toolbar 吗?

<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"
android:fitsSystemWindows="true">

<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/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dp"
        app:layout_scrollFlags="scroll|enterAlways">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 1 " />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 2" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 3" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 4" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 5" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 6" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 7" />

    </LinearLayout>
</android.support.design.widget.AppBarLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>

在实施了 SaravInfern 的解决方案后,这是我目前所取得的成果...

【问题讨论】:

    标签: android android-layout material-design android-coordinatorlayout


    【解决方案1】:

    1.Scroll 标志在任何容器上都不起作用,除非该组件被设计为这样做。像 AppBarLayout 这样的特定组件只能这样设计。

    2.是否要在滚动后隐藏线性布局并显示工具栏?

    3.据我所知最好只有一个appbarlayout,如果你使用多个appbar布局,可能会导致滚动问题

    更新 2 这样做

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/app_bar_height"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">
    
        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed>
    
       <RelativeLayout
        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="?attr/actionBarSize"
        app:layout_collapseMode="pin"
        app:popupTheme="@style/AppTheme.PopupOverlay" />
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:padding="10dp"
    
                android:layout_below="@+id/toolbar"
                android:background="@color/colorPrimary">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView : 1 "
                    android:textColor="#FFFFFF"/>
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView : 2"
                    android:textColor="#FFFFFF"/>
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView : 3"
                    android:textColor="#FFFFFF"/>
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView : 4"
                    android:textColor="#FFFFFF" />
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView : 5"
                    android:textColor="#FFFFFF"/>
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView : 6"
                    android:textColor="#FFFFFF"/>
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="TextView : 7"
                    android:textColor="#FFFFFF"/>
    
            </LinearLayout>
    </RelativeLayout>
    
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
    
    <include layout="@layout/yourview" /> 
    
     </android.support.design.widget.CoordinatorLayout>
    

    更新:

    这是一种变通方法,可以模仿所需的动作

    <?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"
        android:fitsSystemWindows="true"
     tools:context="com.example.myapplication.ScrollingActivity">
    
        <android.support.design.widget.AppBarLayout
            android:id="@+id/app_bar"
            android:layout_width="match_parent"
            android:layout_height="@dimen/app_bar_height"
            android:fitsSystemWindows="true"
            android:theme="@style/AppTheme.AppBarOverlay">
    
            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/toolbar_layout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                app:contentScrim="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">
    
                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:layout_collapseMode="pin"
                    app:popupTheme="@style/AppTheme.PopupOverlay" />
    
    
            </android.support.design.widget.CollapsingToolbarLayout>
        </android.support.design.widget.AppBarLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="10dp"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:background="@color/colorPrimary">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView : 1 "
                android:textColor="#FFFFFF"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView : 2"
                android:textColor="#FFFFFF"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView : 3"
                android:textColor="#FFFFFF"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView : 4"
                android:textColor="#FFFFFF" />
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView : 5"
                android:textColor="#FFFFFF"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView : 6"
                android:textColor="#FFFFFF"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView : 7"
                android:textColor="#FFFFFF"/>
    
        </LinearLayout>
       <!-- <include layout="@layout/content_scrolling" /> -->
    
    
    
       </android.support.design.widget.CoordinatorLayout>
    

    【讨论】:

    • 我想在滚动后隐藏LinearLayout而不是Toolbar
    • youtu.be/enWVNP3Gifg 我想要这样的东西,唯一的区别是我想要其中的 LinearLayout 和 textViews 并且这个视频有一个 tabLayout
    • 你得到的输出是什么?可以分享一下屏幕截图吗?
    • 使用你的解决方案 LinearLayout 向上滚动但 toolBar 也向上滚动和隐藏,
    • 您是否在工具栏中添加了此属性app:layout_collapseMode="pin"?这是当 appbarlayout 折叠时固定工具栏的属性,refer here.
    【解决方案2】:

    这段代码给出了与我想要的完全相同的输出...

    <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"
    android:fitsSystemWindows="true">
    
    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">
    
        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="@color/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:titleEnabled="false">
    
             <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dp"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 1 " />
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 2" />
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 3" />
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 4" />
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 5" />
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 6" />
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView : 7" />
    
    </LinearLayout>
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@color/colorPrimary"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />
    
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>
    
    
        <android.support.v7.widget.RecyclerView
            android:id="@+id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
    
    
     </android.support.design.widget.CoordinatorLayout>
    

    滚动前...

    滚动 RecyclerView ...

    【讨论】:

      猜你喜欢
      • 2018-03-15
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 2012-09-27
      • 2014-01-17
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多