Android 如何禁用折叠工具栏';当卷轴没有内容时是否折叠?

Android 如何禁用折叠工具栏';当卷轴没有内容时是否折叠?,android,scroll,toolbar,android-collapsingtoolbarlayout,Android,Scroll,Toolbar,Android Collapsingtoolbarlayout,我使用的是android support design'com.android.support:design:22.2.1'我的问题是,当滚动条中没有内容时,折叠工具栏仍会启用折叠操作。如果卷轴中没有内容,我需要移除视图的折叠 我的XML: <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"

我使用的是android support design'com.android.support:design:22.2.1'我的问题是,当滚动条中没有内容时,折叠工具栏仍会启用折叠操作。如果卷轴中没有内容,我需要移除视图的折叠

我的XML:

  <android.support.design.widget.CoordinatorLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true">

            <android.support.design.widget.AppBarLayout
                android:id="@+id/appbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:fitsSystemWindows="true"
                android:background="@android:color/white"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

                <android.support.design.widget.CollapsingToolbarLayout
                    android:id="@+id/collapsing_toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:fitsSystemWindows="true"
                    app:contentScrim="?attr/colorPrimary"
                    app:expandedTitleMarginEnd="64dp"
                    app:expandedTitleMarginStart="48dp"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed">

                    <fragment
                        android:id="@+id/pawfile_header"
                        android:name="com.lightbulb.pawesome.fragments.PawfileHeaderFragment"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:layout_marginTop="10dp"
                        android:fitsSystemWindows="true"
                        app:layout_collapseMode="parallax" />

                </android.support.design.widget.CollapsingToolbarLayout>

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

            <fragment
                android:id="@+id/pawfile_timeline"
                android:name="com.lightbulb.pawesome.user_timeline.PawesomeUserTimelineFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />

        </android.support.design.widget.CoordinatorLayout>

问题是appbar强制将scrollflags的高程设置为0。我尝试使用appbar.setElevation(0),但没有效果。如何从appbar中删除立面?

获取appbarlayout参考并设置SetCrollFlags

AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
p.setScrollFlags(0);
toolbar.setLayoutParams(p);
“卷轴中没有内容”,我认为你的意思是“没有碎片”。为此,我认为您必须首先将
更改为
,然后使用
getFragmentManager().beginTransaction()
以编程方式添加片段,然后检查片段是否存在(即不为空),如下所示:

    if (getFragmentManager().findFragmentById(R.id.fragment_name) != null) { 
           // here try RKNP's code to disable the appBar from collapsing 
    }

要停止崩溃工具栏的崩溃,请不要放弃


XML文件中的
app:layout_scrollFlags=“scroll | exituntilclopsed”
。您可以删除该代码尝试
appbarParams.setScrollFlags(-1)
appBarLayout.setExpanded(true,true)
删除立面

如果片段中有recyclerView,请尝试
recyclerView.setNestedScrollingEnabled(false)


app:layout\u scrollFlags=“none”。这行吗?我如何通过编程实现这一点?这里有一条很好的评论:“当我使用
NestedScrollView
(带有
wrap\u content
属性)作为主容器,使用
TextView
作为子容器时,
AppBarLayout
工作正常,不会滚动。”请检查这个答案请检查这个答案这是有帮助的!但是我怎样才能将折叠更新返回到相同的引用,因为我无法恢复视图的折叠。。。setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_直到_折叠),但无法启用此setScrollFlags的折叠设置(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL|AppBarLayout.LayoutParams.SCROLL_FLAG_始终输入_);如何从appbar中删除立面?当我将滚动标志设置为0时,appbar最终将显示一个标高。
setScrollFlags
将工具栏保持在展开状态
setNestedScrollingEnabled
允许保留该位置。这对我来说是最干净的解决方案。你能解释一下为什么appBarLayout.setExpanded(true,true)会删除高程吗?因为对我来说不是。糟糕的议会。这样,即使有可滚动的内容,它也不会崩溃。
    if (getFragmentManager().findFragmentById(R.id.fragment_name) != null) { 
           // here try RKNP's code to disable the appBar from collapsing 
    }