Collapsingtoolbarbar问题,片段内没有滚动内容

时间:2015-11-22 10:41:12

标签: android android-layout android-fragments

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

<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>

compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'

我不需要在所有片段中使用折叠工具栏,但我更喜欢这样做,而不是在每个片段中放置appbarlayout。

问题出在我启动应用程序时:

1)我在一个片段,其中折叠工具栏没有用(我没有滚动内容)但是如果我在工具栏上滚动,我仍然可以展开折叠工具栏(这是问题... )。

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

3)我想重复1)的错误,错误不再存在。 像使用recyclerview滚动一样解决了这个问题? 如果我在工具栏上滚动,折叠工具栏不会展开。我希望它能够像应用程序的推出一样。 我没有赢得片段滚动内容以禁用此错误。

你可以看到这个gif代表我所说的via GIPHY

你能帮帮我吗? :)

1 个答案:

答案 0 :(得分:0)

如果要更改滚动行为,可以通过更改CollapsingToolbarLayout的AppBarLayout.LayoutParams上的Scroll Flags以编程方式执行此操作。

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);
  

使CollapsingToolbarLayout滚动'而没有滚动内容'的另一个技巧是放置   在NestedScrollView中'你的布局'并设置一个* 1000dp最小高度值   到NestedScrollView的孩子('你的布局')。

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>

* SupportDesignDemos示例:https://github.com/android/platform_development/blob/master/samples/SupportDesignDemos/res/layout/include_appbar_scrollview.xml