android - 相对布局中心的列表视图

时间:2014-06-21 02:24:12

标签: android

我有以下布局(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>

列表视图不会显示在中心。我错过了什么?

enter image description here

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>

修改

  1. 即使我将列表视图宽度设置为wrap_content,也没有什么区别。

  2. 将外部视图更改为LinearLayout无济于事。

2 个答案:

答案 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()方法。