在我的布局中使用ListFragment
时,我发现它有不需要的左边距 - 图像上的红色部分(上升到操作栏。
我没有找到关于这个问题的任何文档,但希望有人会知道 - 我怎样才能删除这个空间?
您可以从图像中看到边距不在列表项级别,但在更高级别 - 所以我猜它是片段边距。
值得注意的是,其他片段很好,可以拉伸到全屏宽度。唯一有问题的片段是那些扩展的片段ListFragment
。
在我的布局中使用ListFragment
时,我发现它有不需要的左边距 - 图像上的红色部分(上升到操作栏。
我没有找到关于这个问题的任何文档,但希望有人会知道 - 我怎样才能删除这个空间?
您可以从图像中看到边距不在列表项级别,但在更高级别 - 所以我猜它是片段边距。
值得注意的是,其他片段很好,可以拉伸到全屏宽度。唯一有问题的片段是那些扩展的片段ListFragment
。
您最好覆盖布局,因为填充是 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);
...
}
有点冗长,但这是最灵活的方法。
我有同样的问题。我正在使用 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 上设置样式应该可以解决问题。