将文本垂直居中于列表视图行

时间:2012-02-21 18:42:44

标签: android listview row center

我正在尝试为每行创建一个包含文本和图像的列表视图。 图像应该在右边,文本应该是行的其余部分。文本应该以verticaly为中心。 除了中心部分,我可以做到这一切。 这是我尝试多次失败后的情况:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  android:id="@+id/widget71"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:gravity="center_vertical">
<TextView
  android:id="@android:id/text1"
  android:layout_width="wrap_content"
  android:layout_height="fill_parent"
  android:layout_marginTop="6px"
  android:textAppearance="?android:attr/textAppearanceLarge"
  android:text="@+id/text1"
  android:layout_weight="01"
  android:layout_gravity="center_vertical|fill_vertical|center_horizontal|center|clip_vertical"/>
<ImageView
  android:id="@android:id/icon"
  android:layout_width="30px"
  android:layout_height="40px"
  android:layout_marginTop="8px"
  android:layout_marginLeft="4px"
  android:layout_marginRight="8px"
  android:src="@drawable/delete"
  android:layout_gravity="right" />
</LinearLayout>

无论文本总是显示在行的顶部。 我已经看到一些报道说这可能是因为xml在手动完成时的膨胀方式。但我不这样做。我把它留给了框架。

3 个答案:

答案 0 :(得分:9)

我使用的RelativeLayout包含TextViewImageView

对于我都使用android:layout_centerVertical="true"属性。对我来说很好。

答案 1 :(得分:2)

将其添加到textview

android:gravity="center_vertical"

android:gravity="center"

答案 2 :(得分:1)

User RelativeLayout而不是LinearLayout为TextView设置fill_parent,为ImageView设置wrap_content。