Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 折叠工具栏问题,片段内没有滚动内容_Android_Android Layout_Android Fragments - Fatal编程技术网

Android 折叠工具栏问题,片段内没有滚动内容

Android 折叠工具栏问题,片段内没有滚动内容,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,在我的代码中,只有一个活动和许多片段。 结构如下: <android.support.v4.widget.DrawerLayout> <android.support.design.widget.CoordinatorLayout> <android.support.design.widget.AppBarLayout> <android.support.design.widget.Collapsin

在我的代码中,只有一个活动和许多片段。 结构如下:

<android.support.v4.widget.DrawerLayout>

    <android.support.design.widget.CoordinatorLayout>

        <android.support.design.widget.AppBarLayout>

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

        <FrameLayout/>

    <android.support.design.widget.CoordinatorLayout>

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

</android.support.v4.widget.DrawerLayout>
我不需要在所有片段中使用折叠工具栏,但我更喜欢这样做,而不是在每个片段中放置appbarlayout

问题是当我启动我的应用程序时:

1) 我所处的片段中,折叠工具栏不可用(我没有滚动内容),但如果我在工具栏上滚动,我仍然可以展开折叠工具栏(这就是问题…)

2) 现在,我进入一个带有滚动内容的片段,用recyclerview展开折叠工具栏,折叠工具栏正常工作

3) 我想重复1)中的错误,该错误不再存在。 就像用回收器滚动一样,视图解决了这个错误吗? 如果在工具栏上滚动,则折叠工具栏不会展开。我希望在应用程序发布之前都是这样。 我不想继续使用片段滚动内容来禁用这个bug

你可以看到这个gif,它代表了我所说的


你能帮我吗?:)

如果要更改滚动行为,可以通过编程方式更改CollasingToolbarLayout的AppBarLayout.LayoutParams上的滚动标志

CollapsingToolbarLayout ctl= (CollapsingToolbarLayout) findViewById(R.id.collapsing_appbar);
AppBarLayout.LayoutParams params = ctl.getLayoutParams();
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);//or a combination of flags
ctl.setLayoutParams(params);
另一个让折叠工具栏布局滚动“没有滚动内容”的技巧是 在NestedScrollView中设置“您的布局”,并设置*1000dp最小高度值 到NestedScrollView(“您的布局”)的子级

布局:

<android.support.v4.widget.NestedScrollView
app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <!--your layout-->
    <FrameLayout android:minHeight="1000dp"/>

</android.support.v4.widget.NestedScrollView>

事实上,我之前已经尝试过您的第一个解决方案,它将折叠工具栏修复到最大值。我的目标是拥有与该栏不存在时相同的行为:)@laurent512是否希望折叠工具栏布局充当常规的“操作栏”?您是否尝试通过编程方式将AppBarLayout的高度设置为默认的ActionBar高度?是否看到我的gif?我想了解为什么会发生这种行为:/I我不明白为什么当我们第一次滚动到工具栏本身时,折叠工具栏会展开,并且在第你有一个很好的链接来通过编程设置高度吗?:)因为我的最终目标是:让我们像这个片段上不存在的折叠工具栏那样做。
android:minHeight="1000dp"
<android.support.v4.widget.NestedScrollView
app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <!--your layout-->
    <FrameLayout android:minHeight="1000dp"/>

</android.support.v4.widget.NestedScrollView>