中心ListView水平

时间:2014-04-21 14:28:00

标签: android android-listview

看起来很简单,顽固地说这个ListView不会居中(或者它的内容对我来说并不重要)。

这是活动布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.drobiazko.den.mobineon.MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:background="@drawable/bg">

    <RelativeLayout android:id="@+id/clock_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <!--<RelativeLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:background="@android:color/holo_blue_dark">-->

        <com.drobiazko.den.mobineon.ListViewRowsHeight
            android:id="@+id/listview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:overScrollMode="never"
            android:scrollbars="none"
            android:divider="@null"
            android:listSelector="@android:color/transparent"
            android:persistentDrawingCache="scrolling|animation"
            android:background="@android:color/holo_green_dark" />
    <!--</RelativeLayout>-->
</LinearLayout>

这是ListView的项目布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView android:id="@+id/btn_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/custom_btn_icon" />

    <TextView android:id="@+id/btn_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/custom_btn_name" />

    <TextView android:id="@+id/btn_count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/custom_btn_count" />
</RelativeLayout>

我已尝试过所有内容(包括将布局简化为最大值),但它仍然无法使用。

有趣的是,第一个相对布局clock_container - 由于父级LinearLayout&#39; android:gravity="center_horizontal"而居中,就像魅力一样。为什么不赢得ListView?

稍后添加: FOliveira 的回答启发,我做了一些调查,发现: 一切正常,父母LinearLayoutandroid:gravity="center_horizontal"并尊重他的孩子。 ListView的子节点左对齐的原因是ListView尽管具有android:layout_width="wrap_content"属性,但仍采用所有可能的宽度。

任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

首先,我将删除第一个线性布局,并仅保留相对布局作为父级。

将相对布局作为主要父级后,将CENTER_IN_PARENT属性设置为true。

您所犯的错误是您将“线性布局”子项的重力设置为水平居中,这是正确的,但受此选项影响的唯一子项是“相对”布局本身。