设置GONE可见性时,我的ListView中的第一个条目不会出现

时间:2013-07-12 19:49:12

标签: android

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

我实现了一个自定义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,那么每个都是正确的。任何想法为什么会这样?谢谢!

1 个答案:

答案 0 :(得分:0)

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