【问题标题】:Collapsingtoolbarbar issue with no scrolling content inside fragmentCollapsingtoolbarbar 问题,片段内没有滚动内容
【发布时间】:2015-11-22 10:41:12
【问题描述】:

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

<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) 的 bug,这个 bug 已经不存在了。 就像使用 recyclerview 滚动解决了这个错误一样? 如果我在工具栏上滚动,折叠的工具栏不会展开。我希望它在应用程序发布之前一直如此。 我不会继续使用片段滚动内容来禁用此错误。

你可以看到这个 gif 代表我在说什么via GIPHY

你能帮帮我吗? :)

【问题讨论】:

    标签: android android-layout android-fragments


    【解决方案1】:

    如果您想更改滚动行为,可以通过更改 CollapsingToolbarLayout 的 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);
    

    另一个让 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

    【讨论】:

    • 其实我之前已经尝试过你的第一个解决方案,它将折叠工具栏修复到最大。我的目标是拥有与栏不存在相同的行为:)
    • @laurent512 您希望 CollapsingToolbarLayout 充当常规的“ActionBar”吗?您是否尝试过以编程方式将 AppBarLayout 的高度设置为默认的 ActionBar 高度?
    • 你看到我的 gif 了吗?我想了解为什么会发生这种行为:/我不明白为什么当我们第一次滚动自身时折叠工具栏会展开,然后没有......:/你有一个很好的链接来以编程方式设置高度吗? :)
    • 因为我的最终目标是:让我们像这个片段上不存在这个折叠工具栏一样。
    猜你喜欢
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    相关资源
    最近更新 更多