gpt4 book ai didi

android - 为什么我的按钮一直处于按下状态?

转载 作者:行者123 更新时间:2023-11-29 16:27:15 24 4
gpt4 key购买 nike

在我的 Activity 中,我通过用新 View (setContentView()) 替换当前 View 来响应 onClick()。出于某种原因,当我这样做然后返回到原始 View 时,我最初按下的按钮看起来仍然像被按下一样。

如果你以某种方式“刷新”它(例如用轨迹球滚动它)然后它恢复到未按下状态。就好像按钮没有得到 'touch-up' 事件。

奇怪的是:这只发生在我的 T-Mobile Pulse (android 1.5) 上。它不会发生在模拟器上。

我尝试在显示时在 View 上调用 invalidate()/postInvalidate(),但它没有任何效果。

最佳答案

我的猜测是您的“修饰”事件将进入您的新内容 View 。

您可以:

  • 根本不在 onClick() 中调用 setContentView(),使用其他方式实现您的 UI 目标(多个 Activity 、ViewFlipper、等)。
  • 不在 onClick() 中调用 setContentView() 立即,而是 post() >Runnable 将调用 setContentView()。这应该在“修饰”事件之后将内容 View 替换放入事件队列中。

就个人而言,我不太喜欢不断调用 setContentView() 的 Activity ,因为我担心内存泄漏和过于丰富的 Activity 会使状态和内存管理变得更加困难。例如,假设您为原始布局 (A) 调用 setContentView(),然后为新布局 (B) 调用 setContentView(),然后用户旋转屏幕。 Android 的默认 onSaveInstanceState() 将帮助您处理 B —— 卡在 EditText 内容等上 —— 但对于 A,你就得靠自己了。

关于android - 为什么我的按钮一直处于按下状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2487816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com