如何在ListView页脚中垂直居中内容?

时间:2012-08-29 01:22:05

标签: android android-layout

我已在下面发布了确切的布局。我想在页脚内部垂直居中显示图像和文本。我申请了:

 android:gravity="center_vertical|center"

对于包含这些元素的LinearLayout和内部的TextView,但是整行图像和文本看起来都太靠近页脚的顶部了。我希望它垂直居中,但它始终位于页脚的前30%。

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

<TextView
    android:id="@+id/someMessageMessage"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
     android:visibility="gone"        
     android:layout_margin="10dip"/>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_vertical|center"
    android:paddingBottom="2dip"
    android:paddingTop="16dip" >

    <ImageView
        android:id="@+id/myImg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dip"
        android:paddingTop="3dip"
        android:src="@drawable/picimg" >
    </ImageView>

    <TextView
        android:id="@+id/myMessage"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dip"
        android:layout_marginRight="10dip"
        android:gravity="center_vertical|center"
        android:text="This message appears way to close to the top of the footer. It should be along with the image in the center:"
        android:textStyle="bold"/>
</LinearLayout>

<Button
    android:id="@+id/myButton"
    style="@style/mybuttonstyle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dip"
    android:text="@string/lbl_send"
    android:visibility="gone" />
 </LinearLayout>

2 个答案:

答案 0 :(得分:0)

看到你的布局后,似乎你没有给你的TextView提供android:paddingTop。这就是为什么它出现在顶部。 此外,如果适合您的布局,您还可以从ImageView中删除android:paddingTop。 希望有所帮助。

答案 1 :(得分:0)

图像有多大?我认为问题出在你的第二个LinearLayout。你将高度设置为“wrap_content”,这意味着它只会与最大的孩子一样大。如果图像和文本的高度大致相同,那么似乎任何东西都不会居中。你可以通过强迫高度足够大来测试这个理论。