如何在运行时设置textview位置常量?

时间:2012-11-07 17:32:13

标签: java android

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

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

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

如何处理?

3 个答案:

答案 0 :(得分:2)

将视图的开始可见性参数更改为View.INVISIBLE 它将在布局上占据自己的位置,并防止其他观点占据这个位置,这是View.GONE

的正常行为

答案 1 :(得分: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);
    }
}

答案 2 :(得分:0)

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

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);
}

您可以通过在“How can I generate random number in specific range in Android?”主题中访问此示例来修改更多并尝试使用随机数发生器获取整数值。检查所有可能的答案。不要介意绿色复选标记,并通过调查其评论来关注这些已回答的代码。我确信所有这些关于“随机”主题的答案,我给你的链接,都保证有效。

关于布局,我建议不要使用相对布局而是使用线性布局,因为使用线性布局按比例保留在原始位置,因为相对布局是取决于坐标的屏幕分辨率。还尝试练习操作res文件夹下的字符串值维度,以按不同的屏幕分辨率(从HVGA到WVGA)按比例维护文本的大小。有关文字大小比例的详细信息,请查看“Different font sizes for different screen sizes”。