2012-07-29 20 views
1

這是情況; 我有一個ListView與自定義適配器。每個列表項目包括一個按鈕和一個隱藏的TextView(可見性= GONE)。當我們點擊按鈕時,它會顯示隱藏的文本視圖。 在此之前,它完美地工作。如何在自定義適配器內部動態設置ListView高度?

問題是,當顯示TextView時,ListView的高度應相應增加。 我試圖調整高度像..

list=(ListView)activity.findViewById(R.id.listView); 
ViewGroup.LayoutParams l= lst.getLayoutParams(); 
l.height=l.height+150; //assuming the height of the TextView is 150 
list.setLayoutParams(l); 

但它不能正常工作。我的意思是,身高增加,但它與前一部分混亂。即;現在當我點擊按鈕時,它不顯示相應的TextView。它在其他ListItem中顯示TextView。

請幫我找到解決辦法; 謝謝。

enter image description here

+0

好的問,可以更好,如果你可以發佈屏幕截圖 – AAnkit 2012-07-29 07:10:53

回答

0

與使用View.Gone,設置可見性View.INVISIBLE。點擊後,應將textview設置爲View.VISIBLE。消失意味着TextView不應該保持佈局。 讓我們看看View definations

你可以發送listview,xml文件。

+0

感謝您的回覆, 我認爲,將可見性設置爲View.INVISIBLE會導致視圖保留一些空間。這可能會導致在列表中創建一些不需要的空白空間。我想在用戶擴展列表時創建一些空間。 – 2012-07-29 08:41:39

+0

在用於listview的適配器佈局中,可以使用相對佈局解決問題,並提供絕對高度值,而不是使用wrap_content。然後你可以使用View.Gone。 – 2012-07-29 08:59:29

相關問題