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

Posted

技术标签:

【中文标题】如何在运行时设置 textview 位置常量?【英文标题】:How to set textview position constant in runtime? 【发布时间】:2012-10-27 19:43:45 【问题描述】:

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

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

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

如何处理?

【问题讨论】:

您使用的是什么布局? linearLayout 可能会导致它。 【参考方案1】:

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

【讨论】:

但我希望这些文本视图根据布尔数组值可见。如果 textview[1] 为真,那么只有它会显示 textview,否则不会。我的问题是当我这样做时,它只会改变 x,y 位置并从左上角开始。 如何指定TextViews 的数量。它是动态变化还是恒定值? 它是恒定的。有6个文本视图。它有根据背景图像设置的布局。当它运行时,我怎样才能保持这些布局不变。 每个文本视图都是单独指定的。我对每一个都有特定的布局。 可以截图吗?【参考方案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);
    

【讨论】:

【参考方案3】:

我认为使用 FOR 循环不会帮助您在每次打开时随机显示可见文本视图。你为什么不直接使用整数(0 代表假,1 代表真)和一个 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?”主题中的此示例来修改更多并试验整数值的随机化器。检查所有可能的答案。不要介意绿色复选标记,并通过调查其 cmets 来关注这些已回答的代码。我确信所有这些关于“随机”主题的答案,我给你的链接,都保证有效。

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

【讨论】:

以上是关于如何在运行时设置 textview 位置常量?的主要内容,如果未能解决你的问题,请参考以下文章

如何从运行时参数初始化常量全局变量?

如何在运行时检查Android中Edittext / TextView的textallcaps是true / false?

如何设置自动布局约束常量通用或设备特定?

我们如何在构建 R 包时设置常量变量?

如何使用 Span 提升特定角色的位置?

TextViews 在 ScrollView 中的位置不正确