簡體   English   中英

RelativeLayout,設置TextView的寬度

[英]RelativeLayout, setting width of TextView

我有一個ListView,每行是一個帶有2個TextViews並排的RelativeLayout(將它們稱為textViewLeft和textViewRight)。

textViewRight文本可以在“ xxxxxxx”和“ yyy”(兩種長度)之間切換。 我想將textViewRight寬度設置為適合“ xxxxxxx”,然后如果我將文本更改為“ yyy”,我不希望textViewRight寬度發生變化。

我知道在xml中可以將layout_width指定為特定值,但是設備具有許多不同的字體。 因此,有沒有一種方法可以通過編程設置textViewwRight的寬度以確保它始終適合字符串“ xxxxxxx”?

嗯,沒有簡單的答案可以解決,您可以通過代碼設置寬度,使用可用的寬度,您可以根據屏幕大小來更改文本大小,有幾種不同的解決方案。

這實際上取決於您如何處理應用程序,您是否已經擁有不同的布局文件夾? 如果是這樣,為什么不嘗試一些適合預期范圍的尺寸呢?

無論哪種方式,您都應該從一開始就計算它以適合較大的文本,並且在文本更改時不要更改它。

更加具體。 一種解決方案是將Textview上的文本設置為xxxxxx,並將xml中的布局寬度設置為“ wrap_content”。 現在,您要做的就是在布局視圖后獲取視圖的寬度,否則返回0。

確切地做到這一點的一種方法是在onCreate方法上向您的TextView添加一個viewtreeobserver:

    ViewTreeObserver vto = yourTextView.getViewTreeObserver();  
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {  
        @Override  
        public void onGlobalLayout() {  
            this.yourTextView.getViewTreeObserver().removeGlobalOnLayoutListener(this);  
            int width  = layout.getMeasuredWidth(); 
            int height = layout.getMeasuredHeight();  
        }  
    });

現在您有了寬度,您所要做的就是將寬度更改為該固定值,以下應該可以工作:

    yourTextView.getLayoutParams().width = theWidthYouGot;

暫無
暫無

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

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