簡體   English   中英

如何動態地向/從linearLayout添加/刪除textViews?

[英]How dynamically add/delete textViews to/from linearLayout?

我有國家名稱的數據庫(例如)。 我的第一個目標是將(每個國家/地區)的textView動態添加到linearLayout (android:layout_width="match_parent" android:layout_height="match_parent") 實際上,添加不是問題,但是如果布局的方向是horizontal並且存在很多國家,那么問題就出現了,但是布局的寬度不足以顯示所有這些國家並且它們是隱藏的!

所以我需要動態添加textViews,但是如果沒有足夠的空間容納新的textView,請在下一行添加它或創建新的linearLayout。

我需要為每個國家/地區cos創建新的textView,而不是為每個國家/地區創建clickListener,這是第二個目標...

第二個目標是通過單擊它來刪除某些textView,而另一個textView必須重新定位到該空白區域。 希望我的解釋清楚:)如果沒有,我會再嘗試一個。

所以,我知道如何添加textView:每次我添加新的textView時-計數所有以前添加的textView的長度,如果所有textViews的長度都較小,則將其與linearLayout的長度進行比較-添加到此linLayout ,否則-創建新的lin布局並在其中添加textView。 我認為這可行,看起來很丑:)我希望必須有更簡單,更漂亮的解決方案!

談論從布局中動態刪除textViews-我不知道如何正確執行此操作。

因此,我將很高興提供任何解決方案和想法,謝謝!

編輯這里是示例,我希望它最終看起來像什么: 在此處輸入圖片說明

LinearLayout通常用於固定子項。

對於動態的大量孩子,您應該使用ListViewRecyclerView ,它們是針對您所描述的內容而專門設計的。

不僅如此, ListViewRecyclerView可以重用子視圖,即您的案例所需的TextView,因為視圖對象難以創建並保留在內存中。

編輯:

給出您的圖片並回復評論。 我建議您將TextView與ClickableSpan結合使用,並在單擊時設置更新整個Text。

您可以在下面的鏈接中檢查ClickableSpan。

http://www.programcreek.com/java-api-examples/index.php?api=android.text.style.ClickableSpan

您可以為此使用flowlayout。 用於flowlayout的鏈接是https://github.com/ApmeM/android-flowlayout 只需在flowlayout中增加您的視圖即可。 膨脹時無需進行任何計算。 如果有足夠的空間用於文本視圖,則將它們水平添加到下一行。

暫無
暫無

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

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