[英]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.