0

我需要一些帮助来将自定义列表视图与图像和文本对齐。

我正在尝试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center"
        android:paddingTop="20dp"
        android:layout_weight="2"
        android:text="TextView" />
</LinearLayout>

而且我认为 weight 是保持元素的比例,而不是元素的内容,但显然它关心文本视图内部的东西,所以我的列表看起来很乱。

无论文本在文本视图中多长时间,如何对齐它是相同的?

我的疯狂对齐

所以绿线应该是垂直的直线,不管右手边的文字是什么。

肿瘤坏死因子

4

4 回答 4

3

基本上,您的布局应该是这样的:

<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical|center"
    android:paddingTop="20dp"
    android:layout_weight="2"
    android:drawableLeft="@drawable/ic_launcher"
    android:text="TextView" />

定义了最左边的android:drawableLeft="@drawable/ic_launcher"复合可绘制对象,它将很好地对齐。

例子

于 2012-09-19T14:46:52.023 回答
0

采用

android:layout_height="0dp"

在你的文本视图中。它将为您的所有元素提供固定大小。在这里,权重参数共享的大小是可变的,因为它取决于文本的数量。

于 2012-09-19T14:40:32.147 回答
0

试试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="2"
        android:text="TextView" />
</LinearLayout>
于 2012-09-19T14:42:42.543 回答
0

删除android:layout_weight.

由于您定义了宽度,这将对齐您的图像。

如果您也想对齐文本,请将其删除android:gravity或设置为左侧。

您可以添加android:marginRight到 imageView 以获得更好的可读性。

于 2012-09-19T15:01:41.563 回答