【问题标题】:Snackbar Overlapping Floating Action Button Through Fragment NavigationSnackbar 通过片段导航重叠浮动操作按钮
【发布时间】:2021-08-21 03:44:05
【问题描述】:

我遇到了 Snackbar 与应用程序主视图中的 floating action button 重叠的奇怪问题。对于上下文,我将提供我遇到的问题的简短片段。完成操作(更新或添加)后,我从单独的片段启动snackbar,然后返回到主视图(列表片段),其中将显示snackbar,但snackbar 与浮动操作按钮重叠即使列表片段布局包含协调器布局,也不会稍微向上移动它。有什么想法可以解决这个问题?

当前行为:

https://i.imgur.com/Y5GSXZ2.gif

期望的行为:

https://i.imgur.com/hMfHSa6.gif

下面是我在导航回主片段(列表片段)时调用的代码。

createSnackBar(requireView(),R.string.successfully_updated, Snackbar.LENGTH_SHORT)
findNavController().navigate(R.id.action_updateFragment_to_listFragment)

createSnackBar 函数的实现。

fun createSnackBar(view: View, @StringRes message: Int, duration: Int) {
    val resources = view.resources
    val snackBar = Snackbar.make(view, resources.getString(message), duration)
    snackBar.show()
}

【问题讨论】:

  • 每当您导航时,不要在更新片段(导航之前)中显示小吃栏,而是在返回后在列表片段中显示它
  • @ShobhithYadav 我怎样才能做到这一点?

标签: android kotlin android-fragments floating-action-button android-snackbar


【解决方案1】:

您需要使用 setAnchorView 将 fab 按钮设置为 SnackBar 的锚视图

fun createSnackBar(view: View, @StringRes message: Int, duration: Int) {
    val resources = view.resources
    val snackBar = Snackbar.make(view, resources.getString(message), duration)
    snackBar.setAnchorView(R.id.myFab) // replace myFab with your fab button id
    snackBar.show()
}

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2017-06-14
    相关资源
    最近更新 更多