0

因为代码太大,我不能全部放在这里。所以我只是把类的基本结构。

我实现了一个自定义的RelativeLayout,如下所示:

public class MyLayout extends RelativeLayout {
    EditText t1;
    EditText t2;
    ListView l1;
    Button b1;

}

我用于 l1 的适配器有一个 ArrayList 列表,其中包含我想在 l1 上显示的消息。

MyLayout 是主布局的一部分,实际上是另一个RelativeLayout。在主布局上,有一个 Button 按钮和一个 MyLayout mylayout。button 和 mylayout 都在主布局的构造函数中初始化。然而,mylayout 的可见性最初设置为 GONE。

当用户在主布局上按下按钮时,mylayout 首先设置为可见。然后生成几条Message并添加到适配器的ArrayList中。奇怪的是,第一个消息从未显示在 ListView 上。但是,如果一开始我将 mylayout 的可见性设置为 VISIBLE not GONE,那么一切都是正确的。任何想法为什么会发生这种情况?谢谢!

4

1 回答 1

0

每当您在运行时显示任何布局时,请不要忘记添加LayoutParams. 如果你不添加它会破坏 UI 对齐。此外,如果您RelativeLayouts在运行时添加任何内容,您需要addRules喜欢RelativeLayout.ABOVERelativeLayout.BELOW以将视图正确放置在屏幕上。

于 2013-07-12T19:54:36.433 回答