2014-06-07 28 views
1

我有一個列表視圖,我想更改dividerHeight爲特定的項目。ListView中的空間

例如,我希望它看起來像:

Item 1 
Item 2 
Item 3 

// Bigger space here 

Item 4 
Item 5 

我知道如何改變各個項目之間的空間,但我怎麼可以指定根據在列表中的項目位置的空間。 另一種可能性是對某些物品使用不同的抽屜。

非常感謝

PS:對不起,我的英語不好,我是法國人

編輯:這裏是我的項目顯示在列表視圖我的代碼:

drawerItemsList = getResources().getStringArray(R.array.items); 
    myDrawer = (ListView) findViewById(R.id.my_drawer); 

    myDrawer.setAdapter(new ArrayAdapter<String>(this, 
      R.layout.drawer_item, drawerItemsList)); 
+0

也許你可以改變getView(),它也基於位置。 – tana

+0

感謝您的回答。我用代碼更新了我的帖子。我不知道如何在這段代碼中使用getView()。 – Tartempion34

+0

你正在使用ArrayAdapter,你應該創建一個類extends ArrayAdapter。在這個類中,重寫getView()來自定義每行(item)的視圖。這意味着,首先,您需要研究如何自定義適配器的列表視圖。 關於設置dividerHeight,你不能申請每個項目,它只適用於整個列表視圖。你可以參考更改解決方案http://stackoverflow.com/questions/11858180/change-the-divider-height-of-listview-dynamically – tana

回答

0

你可以通過擴展ArrayAdapter類自定義您的適配器,然後做你想做的事,其getView方法,爲你的問題的簡單解決方案可能是下面的代碼片段代碼:

@Override 
protected View getView(int position, View convertView, AdapterView parent) { 
    View view = convertView; 
    // Check 'view' value and inflate it if needed 

    if(position == 3) { // Gap index in the list 
     // Here you can add some additional bottom margin or padding to the 
     // 'view'. 
     // Or you can left this view empty like a free space 
    } 

    return view; 
} 
+0

感謝您的回答。 我試過你說的,但當我whrite「查看視圖= convertView」我在@override上有一個錯誤說:方法不覆蓋超類的方法 – Tartempion34

+0

@ Tartempion34我不確定覆蓋!,只是刪除它':)' –

+0

它沒有工作了,所以我改變了延伸。現在我的類擴展了baseAdapter,它工作正常。謝謝你的幫助 – Tartempion34

相關問題