1

这是 ListView 中一行的一些 xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:padding="6dip">
<ImageView android:id="@+id/cover" android:layout_width="64dip"
    android:layout_height="64dip" android:layout_alignParentTop="true"
    android:layout_alignParentBottom="true" android:layout_marginRight="6dip" />
<TextView android:id="@+id/loan" style="@style/DetailsLabel.Small"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_toRightOf="@id/cover" android:layout_alignParentRight="true" />
<TextView android:id="@+id/title" style="@style/DetailsLabel.Small"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_toRightOf="@id/cover" android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" android:layout_above="@id/loan"
    android:layout_alignWithParentIfMissing="true" android:gravity="center_vertical"
    android:singleLine="true" android:ellipsize="end" />
<RatingBar android:id="@+id/ratingBarIndicator" style="?android:attr/ratingBarStyleSmall"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_toRightOf="@id/cover" android:layout_below="@id/title"
    android:layout_alignParentRight="true" android:gravity="center_vertical" />

结果如下: 替代文字

(这是一个普通的甜甜圈 1.6)。

我想要实现的是左侧的封面,右侧是标题、评级栏和可选的贷款状态。如您所见,RatingBar 不断重复(它应该只有五颗星);并且只要设置了贷款状态,标题就会消失。如何修复我的 XML 以达到我想要的效果?

4

2 回答 2

2

我将从修复评级栏开始,如下所示:

 <RatingBar
            android:id="@+id/ratingBarIndicator"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="?android:attr/ratingBarStyleSmall"
            android:numStars="5"
            android:isIndicator="true" />

然后将其对齐到其父级的右侧(可选 android:layout_centerVertical="true" )。之后将您的标题放置在封面右侧和评分栏左侧)然后您可以让您的 Loaned 标签位于标题下方和封面右侧。

于 2010-10-15T19:23:27.610 回答
0

您可能会在 Heirarchy Viewer(位于 SDK 的工具文件夹中)中查看您的布局,以了解发生了什么问题。

就个人而言,为了实现该布局,我会使用一些 LinearLayouts 而不是 RelativeLayout。我发现RelativeLayouts 非常令人困惑且难以正确处理(但这只是我的看法)。

例如:

<LinearLayout 
  android:orientation="horizontal" 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content">
  <ImageView
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/>
  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
       <TextView android:id="@+id/loan" .../>
       <TextView android:id="@+id/title" .../>
       <RatingBar android:layout_width="wrap_content .../>
  </LinearLayout>
</LinearLayout>

如果您不希望借出的 textView 为空时占用任何空间,您可能需要在 ListView 适配器的 getView 中将其可见性设置为 GONE。不过试试看。

于 2010-10-15T18:36:33.437 回答