【问题标题】:Switch button animation doesn't work in Drawer Navigation View切换按钮动画在抽屉导航视图中不起作用
【发布时间】:2021-11-07 13:46:30
【问题描述】:

在花了很多时间并没有找到合适的解决方案后,我决定向该服务寻求帮助。
我有一个the simplest application that implements Drawer 的例子。此示例仅包含没有任何实现的菜单项。在菜单项 Share 中,我添加了一个 Switch 和一个监听器:

ma​​in_nav.xml

<item
    android:id="@+id/nav_share"
    android:icon="@drawable/ic_menu_share"
    app:actionViewClass="androidx.appcompat.widget.SwitchCompat"
    android:title="@string/menu_share" />

MainActivity.kt

  val menuItem = navigation_view.menu.findItem(R.id.nav_share)
  val switch_id = menuItem.actionView as SwitchCompat
  switch_id.isChecked = true
  switch_id.setOnClickListener {
   // TODO: empty scope
  }

开关运行流畅,动画效果如下图:

但现在如果开关关闭,我需要关闭主菜单项

switch_id.setOnClickListener {
     navigation_view.menu.findItem(R.id.nav_home).isEnabled = switch_id.isChecked
}

添加此行后,我的 Switch 动画中断

我花了两天时间解决了这个问题,最后还是无济于事。

我的问题: 2021 年带有 android 菜单的 WTF?为什么访问菜单项会破坏动画,我该如何解决?如果有任何帮助,我将不胜感激!

【问题讨论】:

  • 您是否尝试过使用 setOnCheckedChangeListener 并使用提供的布尔值而不是 setOnClickListener ?示例:switch_id.setOnCheckedChangedListener { _, isChecked -&gt; navigation_view.menu.findItem(R.id.nav_home).isEnabled = isChecked }
  • @Kilian 感谢您的回答,但不幸的是这种方法不起作用。
  • @Kilian 也许这与这些答案stackoverflow.com/a/57714721/4512868 和问题issuetracker.google.com/issues/37074309 有关,但我不确定

标签: android kotlin switch-statement material-design navigation-drawer


【解决方案1】:

我在 Android Tracker 中用这个问题创建了一个issue 并得到了答案:

无论哪种方式,这都可能是解决以下问题的重要方法 不是回归,也不会影响 UI 的正确性。在这 时间,我们没有计划解决这个问题。

然后提出了一个解决方法:

类似于添加 setOnCheckedChangeListener 的东西 发布延迟的 Runnable 以实现更改。我建议询问 如果您需要详细示例,请使用 StackOverflow。

例如 How to delay "runOnUiThread" in android?

我添加了postDelay(200),Switch 动画效果很好:

switch.setOnCheckedChangeListener { _, isChecked ->
     Handler(Looper.getMainLooper()).postDelayed({
         navigationView.menu.findItem(R.id.nav_home).isEnabled = isChecked
     }, 200)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 2021-09-08
    相关资源
    最近更新 更多