2017-10-12 77 views
0

在我的應用程序中,用戶可以在EditText中添加標籤。點擊「Enter」後,標籤將被添加到屏幕上。每個標籤可以有不同的長度。用戶可以添加儘可能多的,他想要的。我想要的是:一個接一個的添加一個TextView。當他們填寫一行時,它將開始一個新行,然後是另一行。像下面一樣(兩行TextViews):Android:如何在屏幕上動態添加和堆疊多個文字瀏覽

"text 1","text 2","text 3","Another text" 
"one","Monday" 

是否必須獲取屏幕和每個TextView的寬度然後進行一些計算?還是有一個優雅的方式來做到這一點?

回答

1

您可以使用RelativeLayout作爲容器,並且應該以編程方式添加TextView。在添加TextViews時,您需要計算屏幕寬度和每個TextViews寬度。如果最後添加的TextView寬度超過限制,則需要將其移至下一行。

你可以得到屏幕寬度象下面這樣:

public static int getScreenWidth(Context ctx) { 
    int width = 0; 
    try { 
     DisplayMetrics metrics = new DisplayMetrics(); 
     WindowManager wm = (WindowManager) ctx 
       .getSystemService(Context.WINDOW_SERVICE); 
     wm.getDefaultDisplay().getMetrics(metrics); 
     width = metrics.widthPixels; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return width; 
} 

但是,也有許多圖書館實現這一點。你不必從頭開始。

https://github.com/Cutta/TagView

https://github.com/kaedea/android-tagview

https://github.com/whilu/AndroidTagView

https://github.com/mcharmas/android-tagview

+0

這些庫似乎都有自己的問題。我可能會以編程方式添加「TextView」。感謝您確認我必須獲得TextViews和屏幕的寬度。希望我們有一個可以做我想要的東西的佈局。 –

相關問題