4

在我的布局中使用ListFragment时,我发现它有不需要的左边距 - 图像上的红色部分(上升到操作栏。

我没有找到关于这个问题的任何文档,但希望有人会知道 - 我怎样才能删除这个空间?

您可以从图像中看到边距不在列表项级别,但在更高级别 - 所以我猜它是片段边距。

值得注意的是,其他片段很好,可以拉伸到全屏宽度。唯一有问题的片段是那些扩展的片段ListFragment

不需要的边距是红色的

4

2 回答 2

0

您最好覆盖布局,因为填充是 ListFragment 默认布局的一部分。

http://developer.android.com/reference/android/app/ListFragment.html

所以布局类似于以下内容:-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

<ListView
    android:id="@id/android:list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:visibility="gone"
    android:drawSelectorOnTop="false" />

<TextView
    android:id="@id/android:empty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="No data" />
</LinearLayout>

然后将其填充到 onCreateView()

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final View view = inflater.inflate(R.layout.fragment_bet_statement_list, container, false);
...
}

有点冗长,但这是最灵活的方法。

于 2014-04-07T06:18:04.567 回答
0

我有同样的问题。我正在使用 ActionBarSherlock 并且能够使用Styles 和 Themes解决这个问题。

首先,我将它添加到我的主题.xml 中:

<style name="Theme.Base" parent="@style/Theme.Sherlock.Light.DarkActionBar">
    ...
    <item name="android:listViewStyle">@style/ListViewStyle.MyApp</item>
    ...
</style>

这告诉SherlockListFragment将我的自定义样式用于其ListView. 然后我将此自定义样式添加到我的 styles.xml 中:

<style name="ListViewStyle.MyApp" parent="android:Widget.ListView">
    ...
    <item name="android:paddingLeft">0dp</item>
    ...
</style>

您也可以尝试以下设置之一:

    <item name="android:layout_marginLeft">0dp</item>
    <item name="android:padding">0dp</item> <!-- Instead of paddingLeft, if you want 0, everywhere -->

将 ListView 指向我的自定义样式为我解决了这个问题。本质上,在 ListView Widget 上设置样式应该可以解决问题。

于 2013-07-04T09:15:47.680 回答