2012-06-11 48 views
1

我有一個ScrollView包含LinearLayoutAndroid:RemoveAllItems從視圖不刷新大小

在代碼中我將項目添加到LinearLayout,它很好地擴展。

當我從代碼中刪除LinearLayout中的所有項目時,LinearLayout保持相同大小,但它是空的。

如何獲得ScrollViewreclaim the heightLinearLayout使用時,它有項目和退縮的LinearLayout中使用最少的高度,它現在是空的?

我已經(在C#)嘗試:

 linearLayout.RemoveAllViewsInLayout(); 
     linearLayout.PostInvalidate(); 
     scrollView.PostInvalidate(); 

Java或C#的答案是罰款。

回答

2

我只有與Android的Java經驗,所以我會嘗試使用:

linearLayout.requestLayout(); 

這應當引起另一個佈局通,假設你LinearLayout設置爲WRAP_CONTENT它將測量所有的孩子和大小本身適合孩子們佔據的最小空間(或者如果你有這個設置並且它比較大)minHeight

0

這個技巧似乎工作。結果是,線性佈局ID調整大小和滾動視圖以及:

 linearLayout.RemoveAllViewsInLayout(); 
     linearLayout.Visibility = ViewStates.Gone; 
     scrollView.SmoothScrollTo(0, 0); 
     linearLayout.Visibility = ViewStates.Visible; 

必須有更好的方法,但這個工程。