2012-02-21 27 views
6

我正在尝试使用每行的文本和图像进行listview。 图像应该在右边,文字应该包含行的其余部分。文本应该以垂直为中心。 我可以做所有这些,除了居中的部分。 这是我经过多次失败的尝试:在列表视图行上垂直居中文本

<?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充气的方式。但我不这样做。我把它留给框架。

回答

9

我使用RelativeLayout包含TextViewImageView

对于这两个我使用android:layout_centerVertical="true"属性。对我来说工作得很好。

+0

最后它工作了! 你的答案就是这样。虽然我也用piotrpo答案(可以接受两者?)。 – Nahoot 2012-02-21 19:18:19

1

用户RelativeLayout代替LinearLayout为TextView设置fill_parent,为ImageView设置wrap_content。

2

内容添加到TextView的

android:gravity="center_vertical" 

android:gravity="center"