0

我正在尝试显示一些在运行时可见的文本视图。这是我的代码:

for (int i=0; i<arrBool.length; i++) {
    arrBool[i] = r.nextBoolean();
        if(arrBool[i]==true) {                  
            textView[i].setVisibility(View.VISIBLE);
 }
}

当我运行应用程序时,文本视图应该随机可见。它正在工作,但我的问题是我已经设置了这些文本视图的布局。当我运行 Android 应用程序时,可见的文本视图会转到左上角并丢失布局位置。

如何处理?

4

3 回答 3

2

将视图的开始可见性参数更改为View.INVISIBLE 它将在布局上保留自己的位置,并防止其他视图占据该位置,这是正常情况下的行为View.GONE

于 2012-11-07T17:39:56.173 回答
2

为 teoREtik 解决方案添加更多内容。

在您的布局中不要指定 android:visible 属性。

for (int i=0; i<arrBool.length; i++) {
    arrBool[i] = r.nextBoolean();
    if(arrBool[i]==true) {                  
        textView[i].setVisibility(View.VISIBLE);
    else 
        textView[i].setVisibility(View.INVISIBLE);
    }
}
于 2012-11-07T17:48:34.390 回答
0

我认为使用 FOR 循环不会帮助您在每次打开时随机显示可见文本视图。为什么不直接使用整数(0 表示假,1 表示真)和这样的随机数:

Random rnd = new Random(1);  // --> This will randomize numbers up to one;
int enable =  rnd.nextInt(); // --> Get the random value from 0 to 1

if(enable == 1) // --> If visibility of the text field is enabled everytime you opened the app...
{
      textView.setVisibility(View.VISIBLE);
} else {
      textView[i].setVisibility(View.INVISIBLE);
}

您可以通过访问此示例在“如何在 Android 中生成特定范围内的随机数? ”主题中进行更多修改并试验整数值的随机化器。检查所有可能的答案。不要介意绿色复选标记,并通过调查其评论来关注这些已回答的代码。我确信所有这些关于“随机”主题的答案,我给你的链接,都保证有效。

关于布局,我建议不要使用相对布局,而是使用线性布局,因为使用线性布局会按比例保持在原始位置,因为相对布局是屏幕分辨率取决于坐标。还可以尝试练习操纵 res 文件夹下的字符串值尺寸,以在不同的屏幕分辨率(从 HVGA 到 WVGA)中保持文本的大小成比例。有关文本大小比例的更多详细信息,请查看“不同屏幕尺寸的不同字体大小”。

于 2012-11-20T04:33:13.043 回答