Android 当我选择了一个视图并向下滑动状态栏时,当我再次提起它时,该视图未被选中

Android 当我选择了一个视图并向下滑动状态栏时,当我再次提起它时,该视图未被选中,android,button,kotlin,fragment,statusbar,Android,Button,Kotlin,Fragment,Statusbar,因此,我有带按钮的Fragment,当用户单击其中一个按钮时,它们被选中,如下所示: override fun onWindowFocusChanged(hasFocus: Boolean) { super.onWindowFocusChanged(hasFocus) (currentFragment as? ActivityActionsListener)?.onWindowFocusChanged(hasFocus) } 要将按钮设置为选中状态,我首先将onTouchLi

因此,我有带按钮的
Fragment
,当用户单击其中一个按钮时,它们被选中,如下所示:

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

要将按钮设置为选中状态,我首先将
onTouchListener
设置为
按钮
,这样做:

override fun onTouch(view: View?, event: MotionEvent?): Boolean {
  view?.isPressed = true
  if (event?.actionMasked == ACTION_UP) {
        view?.performClick()
  }
  return true
}
但当我向下拉
状态栏时,
按钮被取消选择,如下所示:

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


我想要的是
按钮
始终处于选中状态,但是当我拉起
状态栏
时,不会调用
onResume
,因此我不知道是否发生了这种情况


为什么会这样?在向上或向下拉动状态栏时,是否有调用的回调

活动恢复后,您可以再次尝试设置选择

在OnResume方法中

希望这有帮助


或者发布您的代码

结果表明,在这种情况下调用的唯一回调是活动中的onWindowFocusChanged(hasFocus:Boolean),但是片段中没有发生任何事情,因此我创建了一个接口:

interface ActivityActionsListener {
    fun onWindowFocusChanged(hasFocus: Boolean)
}
我在
片段中实现,并从
活动调用如下内容:

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

fun onWindowFocusChanged() {
    setupButtons()
}

状态栏
隐藏时,不会调用
onResume