我正在尝试显示运行时可见的一些文本视图。 这是我的代码:
for (int i=0; i<arrBool.length; i++) {
arrBool[i] = r.nextBoolean();
if(arrBool[i]==true) {
textView[i].setVisibility(View.VISIBLE);
}
}
当我运行应用程序时,textview应随机可见。它工作正常,但我的问题是我已经设置了那些textview的布局。当我运行Android应用程序时,可见的文本视图会转到左上角并丢失布局位置。
如何处理?
答案 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”。