0

第一次发帖,Android 新手,我似乎在这个问题上遇到了障碍:

我正在创建一个动态布局,由几个相同的“复合”对象组成(这些基本上是“浮动”线性布局,每个都包含一个图标(ImageView)和一个标题(TextView))。每个 LinearLayout 的 (x,y) 坐标可能会根据用户操作发生变化,并且需要精确放置(即:不能使用 RelativeLayout 等),因此我将它们定位在 AbsoluteLayout 内。

在 onCreate() 期间,我将这些对象中的每一个添加为 AbsoluteLayout 对象内的子视图,然后手动设置 (x,y)。到目前为止没有问题,效果很好,初始布局很完美。

问题:

在最初的 onCreate() 之后,我无法让这些对象的 (x,y) 位置在屏幕上发生变化。我可以更新他们的 layoutParams,但屏幕上的布局(在 AbsoluteLayout 内)永远不会刷新。我已经尝试过 forceLayout()、invalidate()、requestLayout(),它们都不起作用。

我的基本方法是否有问题,或者我只是缺少什么?

我正在考虑更改为 SurfaceView 并以艰难的方式进行渲染,但是我的代码现在可以运行 99%,如果不需要,我不想更改它。唯一的问题是布局管理器只是拒绝为我的子对象注册位置更改。

求助,我做错了什么?

4

1 回答 1

0

您是否尝试为 UI 创建一个处理程序,然后从中更新您的 UI..

UI 将无法从不同的线程更新。因此,为 UI 创建一个线程处理程序并使用该处理程序更新对 UI 的更改。

-维奈

于 2010-08-04T08:19:31.097 回答