簡體   English   中英

如何在運行時設置textview位置常量?

[英]How to set textview position constant in runtime?

我試圖顯示一些在運行時可見的textviews。 這是我的代碼:

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

當我運行應用程序時,textviews應該隨機可見。 它正在工作,但是我的問題是我已經設置了這些文本視圖的布局。 當我運行Android應用程序時,可見的textviews轉到左上角,並且失去了布局位置。

該如何處理?

將視圖的開始可見性參數更改為View.INVISIBLE它將在布局上保留其自己的位置,並防止其他視圖占據此位置,這對於View.GONE是正常行為

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

我認為使用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);
}

您可以通過訪問“ 如何在Android中的特定范圍內生成隨機數? ”主題中的示例,對整數值進行更多修改並嘗試使用該隨機數 檢查所有可能的答案。 不要介意綠色的復選標記,而應通過調查其評論來集中回​​答這些代碼。 我確信所有有關“隨機”主題(我給您的鏈接)的答案都可以保證有效。

關於布局,我建議不要使用相對布局,而應使用線性布局,因為使用線性布局會按比例停留在原始位置,因為相對布局取決於屏幕分辨率,取決於坐標。 也可以嘗試在res文件夾下練習操作字符串值的大小,以在不同的屏幕分辨率(從HVGA到WVGA)中按比例維護文本的大小。 檢查“ 不同字體大小以適合不同屏幕尺寸 ”,以獲取有關文本尺寸比例的更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM