【问题标题】:Android - Using CoordinatorLayout in Activity and in FragmentAndroid - 在 Activity 和 Fragment 中使用 CoordinatorLayout
【发布时间】:2016-10-19 08:02:15
【问题描述】:

所以我在 Activity 中使用 CoordinatorLayout 之类的......

<CoordinatorLayout>
    <AppBarLayout>
        <Toolbar/>
    </AppBarLayout>
    <FrameLayout> // For Fragments
</CoordinatorLayout>

Toolbar 使用 scroll|enterAlways 作为 Scrollflags

在一个特定的片段中,我想在布局上实现视差效果,我再次使用CoordinatorLayout,但这会导致工具栏无法正常运行。

这是我在Fragment 的布局中使用它的方法:

<CoordinatorLayout>
    <AppBarLayout>
        <CollapsingToolbarLayout>
            <Toolbar/>
        </CollapsingToolbarLayout>
    </AppbarLayout>

    <RelativeLayout/> // Contains the Fragment's content
</CoordinatorLayout>

如何实现这两种效果?会不会是因为FragmentCoordinatorLayout拦截了事件?

所以工具栏在滚动时隐藏,我需要使用滚动视差效果隐藏搜索功能

【问题讨论】:

  • 一个CoordinatorLayout 就足够了。厨师也可能会破坏肉汤。
  • 无论如何,当您最终将片段放回活动中时,为什么要在片段中复制活动中的内容(应用栏、工具栏、协调器)?你打算实施什么?也许是一张照片?
  • @ElvisChweya 哦,我认为 appbar 必须是 CoordinatorLayout 的直接子代 :( 是的,它用于类似的东西,用于搜索功能。搜索应该在用户滚动时使用视差效果。
  • 你能画出你设想的布局吗?我认为复制是多余的
  • @ElvisChweya 我也有这种感觉,但我不知道我还能怎么解决这个问题。让我在油漆中做点什么

标签: android android-coordinatorlayout


【解决方案1】:

我没有尝试过,但this gist 似乎是一个正确的方法,因为它向 CoordinatorLayout 添加了一个滚动子功能,可以将滚动也向上调度。

更新:

尝试删除方法offsetChildToAnchor,因为它在包外不可见。

然后发现forked gist修复了滚动管理的问题,并将NestedScrollingEnabled设置为true。

在嵌套的 CoordinatorLayout 上添加了 app:layout_behavior="@string/appbar_scrolling_view_behavior"

测试在没有片段的活动上嵌套两个 CoordinatorLayouts。有用。并且也应该使用片段。

【讨论】:

  • 也遇到了这个要点并尝试使用它,但没有得到任何运气,offsetChildToAnchor 部分似乎不在CoordinatorLayout 中,因为 AS 说它没有覆盖任何超类中的方法
  • 我自己也试过了:是的,该方法在原包之外是不可见的。因此,由于该方法仅管理优化,因此我尝试不使用它以维护滚动方法。我会更新回复。
  • 这个周末我一直在测试其他与我类似的应用程序,它们没有那种过度杀伤力的多重CoordinatorLayout 哈哈。那么这是一个糟糕的设计吗?我应该离开工具栏吗?它只是卡在那里,不随滚动而移动,就是这样
  • 在我看来嵌套 CoordinatorLayout 并不是那么糟糕的设计。
  • 我的观点是一样的,直到有人说这有点过分了哈哈我忘了是谁说的了。因为我读过一次它可以用来制作小吃店,无论我在哪里希望它是
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多