我有以下布局(Android 4.4
):
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="@android:color/transparent"
android:dividerHeight="5dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
</RelativeLayout>
列表视图不会显示在中心。我错过了什么?
ListView项目布局:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/icon"
android:layout_width="100dp"
android:layout_height="100dp"
android:scaleType="fitXY"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:layout_marginTop="40dp"
android:textStyle="bold"
android:background="@color/list_background"
/>
</LinearLayout>
修改:
即使我将列表视图宽度设置为wrap_content,也没有什么区别。
将外部视图更改为LinearLayout无济于事。
答案 0 :(得分:2)
您需要更改List Item Layout
以使视图水平居中。
<强>样品:强>
<?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_horizontal"
android:orientation="horizontal" >
<ImageView
android:id="@+id/labIcon"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/lawl"
android:scaleType="fitXY" />
<TextView
android:id="@+id/labName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:text="item1"
android:textStyle="bold" />
</LinearLayout>
答案 1 :(得分:0)
它无法解决您的问题,但
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
您不应该使用wrap_content
作为ListView的高度。
通过这种方式,您的ListView
必须衡量其项目并获取必须在适配器上调用getView()
的项目。这导致以低效方式多次调用getView()
方法。