Android ListView - 第一个不垂直居中的元素

时间:2015-05-20 20:21:51

标签: android xml listview

从下面的屏幕截图中可以看出,列表视图中的第一项不是垂直居中的。我该如何居中呢?

screenshot

活动XML

 <ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/button"
    android:layout_alignParentTop="true" />

代码,我只是从books数组填充listview ...

List<String> books = new ArrayList<String>();
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(Main.this,  android.R.layout.simple_list_item_1, books);
lvFirst.setAdapter(adapter1);

2 个答案:

答案 0 :(得分:0)

尝试将此行添加到ListView XML:

android:gravity="center"

它应该是这样的:

<ListView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/listView"
  android:layout_alignParentLeft="true"
  android:layout_alignParentStart="true"
  android:layout_above="@+id/button"
  android:layout_alignParentTop="true" 
  android:gravity="center"/>

编辑:

对不起,现在我明白了你的问题。

您正在使用&#34; android.R.layout.simple_list_item_1&#34;作为你的内置布局,但它不会那样工作。

这是this question的副本。

总结一下,您需要创建自己的布局以传递给适配器。答案在上面发布的问题链接中。

答案 1 :(得分:0)

感谢您的时间和答案,但我无法相信这是一个不好的实现,所以我只列出了一些默认布局,这解决了我的问题,所以我想在这里写一下,以帮助将来的人

adapter1 = new ArrayAdapter<String>(Main.this, android.R.layout.simple_selectable_list_item, books);

我刚改变了:

android.R.layout.simple_list_item_1

到:

android.R.layout.simple_selectable_list_item