当我选择了视图并向下滑动状态栏时,当我再次将其抬起时未选择视图

When I have a selected view and slide down the status bar, when I lift it up again the view is not selected

所以,我 Fragment 带有按钮,当用户点击其中一个按钮时,它们会被选中并且看起来像这样:

要将按钮设置为选中状态,我首先将 onTouchListener 设置为 Button,它会执行以下操作:

override fun onTouch(view: View?, event: MotionEvent?): Boolean {
  view?.isPressed = true
  if (event?.actionMasked == ACTION_UP) {
        view?.performClick()
  }
  return true
}

但是当我向下拉 StatusBar 时,Button 被取消选择并且看起来像这样:

我想要的是 Button 一直保持选中状态,但是当我拉起 StatusBaronResume 没有被调用,所以我不知道是否发生了这种情况与否。

为什么会这样?状态栏上拉或下拉时有回调吗?

您可以在 activity 恢复后再次尝试设置选择

在 OnResume 方法中

希望对您有所帮助

或者其他 Post 你的代码

原来在这种情况下调用的唯一回调是 Activity 中的 onWindowFocusChanged(hasFocus: Boolean),但 Fragment 中没有任何反应,所以我创建了一个接口:

interface ActivityActionsListener {
    fun onWindowFocusChanged(hasFocus: Boolean)
}

我在 Fragment 中实现并从 Activity 调用,如下所示:

override fun onWindowFocusChanged(hasFocus: Boolean) {
    super.onWindowFocusChanged(hasFocus)
    (currentFragment as? ActivityActionsListener)?.onWindowFocusChanged(hasFocus)
}

并在 Fragment 中:

fun onWindowFocusChanged() {
    setupButtons()
}