2012-07-05 83 views
1

在我的應用程序中,我正在使用片段。問題是我無法爲TitlesFragment extends ListFragment內的列表中的每個項目設置保證金。此外,我必須在DetailsFragment extends Fragment內顯示的全套數據中添加保證金。如何才能做到這一點?請幫助我。提前致謝。在片段內添加邊距

請參閱我的xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="fill_parent" 
android:background="@drawable/bg" 
android:orientation="vertical" > 

<ListView 
    android:id="@+id/list_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:cacheColorHint="#00000000" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="10dp" 
    android:scrollbars="none" 
    android:smoothScrollbar="true" > 
</ListView> 

回答

0

您的layout.xml文件來設置dividerdividerHeight性能。 例如

<ListView 
    android:id="@android:id/list" 
    android:divider="@android:color/transparent" 
    android:dividerHeight="5dip" /> 

這樣你會得到通過5 dip

+0

其不工作 – Mathew 2012-07-05 12:13:56

+0

發佈您的代碼。它必須工作 – Blackbelt 2012-07-05 12:15:09

+0

我已編輯我的帖子 – Mathew 2012-07-05 12:15:51

0

列表視圖(與片段,ListFragments等一起)隔開ListFragment的所有元素出現覆蓋提供佈局的根參數(高度,寬度),以便將預定義的視圖/項目尺寸放入父項。這似乎也發生在每個佈局的子項上最大尺寸,例如,來自AOSP的TextView的simple_list_item_1.xml

由於您特別要求ListView項目間距,因此我仍不會像黑帶建議那樣使用dividerHeight,因爲這會改變原始內容的居中(第一項不會從列表頂部有所需的間距,因爲分隔符低於每個項目)。

對於ListView項目,通常可以通過設置頂部和底部保證金的自定義佈局(由自定義適配器調用)來覆蓋此行爲。請參見下面的示例基於simple_list_item_1.xml並注意邊緣修飾底:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceListItemSmall" 
    android:gravity="center_vertical" 
    android:paddingStart="?android:attr/listPreferredItemPaddingStart" 
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" 
    android:minHeight="?android:attr/listPreferredItemHeightSmall" 

    android:layout_marginTop="20dp" 
    android:layout_marginBottom="20dp" 
/> 

(您可能需要爲非公引用提供內嵌的價值觀「機器人:ATTR」)

你然後必須爲您的列表調用一個自定義適配器(例如ArrayAdapter)併爲其提供您的自定義列表項XML。

+0

作爲hack,你也可以嘗試在適配器的getView方法上執行(以編程方式)重置LayoutParams。如果使用兼容性或堆棧庫,ListViews,Fragments和ListFragments的表現非常隨機,因此我建議將此作爲替代方案。 – leRobot 2013-04-29 17:16:06