我正在编写 android 上的一些 ui 屏幕。有时我需要立即查看 ui 更改,但可以在下一个 ui 线程请求中看到更改。因此,例如,如果我在屏幕上删除一个 View 并以编程方式添加另一个 View ,然后更改整个 View (使用 viewAnimator),可以观察到删除 View ,但无法观察到新 View 。我确定已添加新 View ,因为当我返回第一页时,屏幕上会显示新 View 。
我应该调用哪个函数在屏幕上添加或删除一些 View 以立即查看其效果?
我尝试了 invalidate(),但它对我的情况不起作用
最佳答案
听起来,如果您说 UI 仅在下一个 UI 线程请求时更新,那么您正在从另一个线程修改 UI 元素。因此,您必须使用 runOnUiThread 在 Runnable 中修改它们。所以,例如:
//example code
//where you are trying to modify UI components, do this instead
runOnUiThread(new Runnable(){
public void run(){
//update UI elements
}
});
关于android - 立即应用 ui 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446636/