ListView页脚不是中心

时间:2011-05-31 23:02:18

标签: android listview android-layout

知道为什么我的列表视图的页脚总是在左边?这是我的xml布局。在添加更多数据需要时添加和删除页脚。我希望TextView和ProgressBar成为中心

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:orientation="horizontal" 
android:gravity="center">

<TextView
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textSize="12sp"
    android:textColor="@color/author_text"
    android:text="LOADING DATA..."
    />

<ProgressBar 
    android:layout_width="15dp" 
    android:layout_height="15dp" 
    android:layout_marginLeft="10dp"
    />
</LinearLayout>

3 个答案:

答案 0 :(得分:7)

好的,问题不在于OP中显示的页脚视图;它确实工作得很好。问题是我的ListView将layout_width属性设置为wrap_content。这适用于所有列表渲染器,但不适用于页脚。将ListView更改为fill_parent修复它

<ListView 
    android:id="@+id/android:list"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    style="@style/MyList"
    />
谢谢帮派 [解决]

答案 1 :(得分:1)

水平LinearLayout将从左到右放置其视图。在确定水平定位时,它会忽略任何重力或layout_gravity属性(尽管这些属性会影响垂直定位)​​。您需要使用RelativeLayout或嵌套垂直LinearLayout以获得视图的水平居中。

或者,你可以给TextView一个layout_weight为1,这将导致它占用任何额外的空间。因为它将文本居中,这应该会给你你想要的效果。

编辑:既然我明白你想要什么,那就应该这样做:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:orientation="vertical"
    >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_gravity="center_horizontal">
        <TextView
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="12sp"
            android:textColor="@color/author_text"
            android:text="LOADING DATA..."
            />

        <ProgressBar 
            android:layout_width="15dp" 
            android:layout_height="15dp" 
            android:layout_marginLeft="10dp"
            />
    </LinearLayout>
</LinearLayout>

你可以通过某种方式使用RelativeLayout来避免嵌套的LinearLayout,但首先想到这一点。

答案 2 :(得分:0)

尝试将其layout_width设置为match_parent