当我选择了视图并向下滑动状态栏时,当我再次将其抬起时未选择视图
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
一直保持选中状态,但是当我拉起 StatusBar
时 onResume
没有被调用,所以我不知道是否发生了这种情况与否。
为什么会这样?状态栏上拉或下拉时有回调吗?
您可以在 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()
}
所以,我 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
一直保持选中状态,但是当我拉起 StatusBar
时 onResume
没有被调用,所以我不知道是否发生了这种情况与否。
为什么会这样?状态栏上拉或下拉时有回调吗?
您可以在 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()
}