在我的应用程序中,我正在使用片段。问题是我无法为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 :(得分:0)
您必须在divider
文件中设置dividerHeight
和layout.xml
属性。
例如
<ListView
android:id="@android:id/list"
android:divider="@android:color/transparent"
android:dividerHeight="5dip" />
通过这种方式,您将ListFragment
的所有元素间隔为5 dip
答案 1 :(得分:0)
ListViews(以及Fragments,ListFragments等)似乎会覆盖提供的布局的根参数(高度,宽度),以使预定义的View / Item维度适合父级。每个布局的子项最大维度似乎也会发生这种情况,例如AOSP的simple_list_item_1.xml中的TextView
由于你专门询问ListView项目间距,我仍然不会使用blackbelt建议的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"
/>
(您可能需要为“?android:attr”的非公开引用提供内联值)
然后,您必须为列表调用自定义适配器(例如ArrayAdapter),并为其提供自定义列表项XML。