2

我在 XML 中为要用于 ListView 中的一系列项目的列表项创建相对布局时遇到问题。我已经尝试了几个小时,并且正在撕扯我的头发,试图让它看起来像我想要的那样,但无法让所有东西都出现在正确的位置并且不会重叠或错位。我可以获得第一个图像和接下来的两个文本视图,但无法获得最后一个文本视图和图像视图。

我附上了一个线框样式的图像,说明我试图让它看起来如何,并且想知道是否有人可以帮助我?

替代文字

  • 右侧的 ImageView 是行全高的设置图标,周围有填充?
  • 两个 TextView 占据了大部分宽度。地址文本视图有可能文本很长,因此如果空间不足,可能需要截断,或者理想情况下缩小字体大小?
  • 下一个 TextView 将只包含一个最多 5 个字符的小字符串。
  • 最后一个 ImageView 是一个小箭头,表示此列表项可单击以获取更多信息。它需要如图所示居中。
  • 我想图标、最后一个文本视图和最后一个图像是否总是在列表中的相同位置/对齐。

如果有人可以在这方面提供一些帮助,我将不胜感激。

干杯伙计们

4

2 回答 2

12

对于任何有兴趣的人,我设法让这个工作。我知道去寻找问题的答案是多么痛苦,但它从未完全解决。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<ImageView
    android:id="@+id/Icon"
    android:layout_margin="5dip"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true" />
<TextView
    android:id="@+id/topLine"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:lines="1"
    android:layout_toRightOf="@+id/Icon"
    android:layout_toLeftOf="@+id/distance"
    android:textColor="@color/blacktext"
    android:textSize="20dip"
    android:text="Name" />
<TextView
    android:id="@+id/bottomLine"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:lines="1"
    android:layout_toRightOf="@+id/Icon"
    android:layout_below="@+id/topLine"
    android:layout_toLeftOf="@+id/distance"
    android:textColor="@color/blacktext"
    android:textSize="15dip"
    android:text="Address" />
<TextView 
    android:id="@+id/distance"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@+id/arrow"
    android:layout_centerVertical="true"
    android:layout_width="wrap_content"
    android:lines="1"
    android:textColor="@color/blacktext"
    android:textSize="12dip"
    android:text="100m" />
<ImageView 
    android:id="@+id/arrow"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_margin="5dip"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true" 
    android:src="@drawable/redarrow"/>
</RelativeLayout>
于 2010-08-15T23:18:57.557 回答
0

我做了类似的事情(除了左边的图片)

它可能会帮助您:

<?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="fill_parent"
    android:gravity="center_vertical"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/TextView01"
        android:id="@+id/LinearLayout01"
        android:gravity="center_vertical"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="0dip"
            android:layout_weight="1"
            android:paddingRight="8dip"
            android:layout_height="wrap_content"
            android:id="@+id/LinearLayout01"
            android:orientation="vertical">
            <TextView
                android:text="@string/Birthday"
                android:id="@+id/txtTitlevalue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:ellipsize="end"
                android:layout_weight="1"
                android:textAppearance="?android:attr/textAppearanceLarge"></TextView>
            <TextView
                android:text="1960-01-01"
                android:id="@+id/txtSubvalue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="-4dip"
                android:singleLine="true"
                android:ellipsize="end"
                android:layout_weight="10"
                android:textAppearance="?android:attr/textAppearanceSmall"></TextView>
        </LinearLayout>
        <TextView
            android:text="2"
            android:id="@+id/txtNumber"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textStyle="bold"
            android:layout_marginRight="10dip"
            android:layout_gravity="center_vertical|right"></TextView>
        <TextView
            android:text="weeks"
            android:id="@+id/txtUnit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dip"
            android:layout_gravity="center_vertical|right"></TextView>
    </LinearLayout>
    <!-- <View
        android:background="@drawable/black_white_gradient"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_marginTop="2dip"
        android:layout_marginBottom="2dip"
        android:clickable="true"
        android:focusable="true"
        android:layout_below="@+id/LinearLayout01" /> -->
</LinearLayout>
于 2010-07-20T10:48:04.127 回答