因为代码太大了我不能把它放在这里。所以我只是把类的基本结构。
我实现了一个自定义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首先设置为VISIBLE。然后生成几个Message并将其添加到适配器的ArrayList中。奇怪的是,第一个Message永远不会显示在ListView上。但是,如果一开始我将mylayout的可见性设置为VISIBLE而不是GONE,那么每个都是正确的。任何想法为什么会这样?谢谢!
答案 0 :(得分:0)
每当您在运行时显示任何布局时,请不要忘记添加LayoutParams
。如果不添加它将破坏UI对齐。此外,如果您要在运行时添加任何RelativeLayouts
,则需要addRules
RelativeLayout.ABOVE
,RelativeLayout.BELOW
等来将视图正确地放在屏幕上。