2014-11-23 52 views
0

我有一個擴展了「ListView」的類。 在構造函數中,我想用這個代碼來設置頁邊距:無法在自定義ListView中設置頁邊距

LayoutParams params = new LayoutParams(
      LayoutParams.MATCH_PARENT,  
      LayoutParams.MATCH_PARENT 
    ); 
    params.setMargins(10,0,0,0); 

對於一個未知的原因,我沒有上PARAMS一個「setMargins」的方法...... 這很奇怪,因爲如果在一個活動,我創建了一個新的ListView,我可以使用params沒有任何問題。 我認爲這很明顯,但我不知道爲什麼,我找不到解決方案。

感謝您的幫助。

回答

0

也許您正在使用錯誤的LayoutParams類。嘗試使用LinearLayout.LayoutParams

+0

就像我說的那樣,這當然是顯而易見的......是的。所以它工作。你知道爲什麼我沒有這個問題,如果我在一個活動中創建一個新的列表視圖?謝謝。 – IronRabbit 2014-11-23 17:03:56

0

您需要使用ViewGroup.LayoutParams。完成後請不要忘記撥打requestLayout()

設置邊距,以像素爲單位。對requestLayout()的調用需要完成 ,以便考慮新的頁邊空白。 左邊和右邊可能會被requestLayout()覆蓋,具體取決於佈局 的方向。

+0

對不起,我有同樣的問題。 Morad的解決方案解決了這個問題。 – IronRabbit 2014-11-23 17:08:25

+0

@IronRabbit如果您嘗試使用Moran解決方案將您的服裝視圖放置在RelativeLayout中,它會使您崩潰。 – 2014-11-23 17:14:43

+0

我已更正我的代碼。事實上,如果我使用LinearLayout.LayoutParams它可以工作,但邊距完全被忽略。如果我使用RelativeLayout.LayoutParams,它可以正常工作,並具有良好的行爲。但是,ViewGroup完全不起作用,我有同樣的錯誤;) – IronRabbit 2014-12-14 17:16:33