2015-06-04 48 views
1

如何以編程方式設置ListView的頂部填充? 使用SetPadding()在使用android:axdingTop =「100dp」的情況下在listml中執行任何操作時都不會發生任何問題。如何以編程方式設置ListView的頂部填充?

換句話說;我如何在代碼中實現android:paddingTop =「100dp」?

爲什麼我需要它?: 我需要用於設計/交互原因的填充,如果將它設置爲axml,它會很好。但大小/值需要與另一個視圖的大小完全相同(因爲設計/交互的原因),我需要在代碼中進行設置。 我發現ListView.paddingTop屬性在後臺設置ListView的ListPaddingTop,我試着在那裏尋找答案,但我找不到任何設置該屬性的解決方案。

我目前使用這個axml設置:

<ListView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:paddingTop="100dp" 
    android:scrollbarStyle="outsideOverlay" 
    android:clipToPadding="false" /> 
+0

使用搜索#setPadding( int,int,int,int),最有可能的是你誤用了它 – pskink

+0

@pskink是的,我正在使用/ inher來自MVVMCross的ListView,似乎在它的構造函數中設置了我無法控制的東西。 –

回答

0

您可以使用setPadding (int left, int top, int right, int bottom)listView.setPadding(0,padding,0,0);

這將頂部邊距設置爲padding -pixels。

對於dp設置它,而不是,你可以做一個轉換:

float scale = getResources().getDisplayMetrics().density; 
int dpAsPixels = (int) (100*scale + 0.5f); 

編輯:

與此代碼嘗試:

View padding = new View(this); 
padding.setHeight(100); 

listView.addHeaderView(padding); 
+0

就像我說的,setPadding似乎無法在ListViews頂端工作 –

+0

@Toinedb,當你使用'android:paddingTop =「100dp」'時,你認爲用什麼來設置填充?是的:setPadding,你基本上錯過了它,顯示你的代碼你是如何做到的 – pskink

+0

測試編輯代碼,並看到它發生 – jlopez

相關問題