线性布局问题

时间:2011-09-20 19:58:40

标签: android layout android-layout android-linearlayout

我的应用程序布局存在问题。 我有一个listview,我在其中为每个项目插入了一个自己的布局。 这很好用。

以下是插入的XML布局的一部分:

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
    >
        <TextView
            android:id="@+id/label"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp" />
        <TextView
            android:id="@+id/price"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp" />
        <TextView
            android:id="@+id/days"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp" />
        <TextView
            android:id="@+id/test"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp" />
        <TextView
            android:id="@+id/status"
            android:paddingTop="2px"
            android:paddingLeft="15px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp" />
    </LinearLayout>

在我的活动中,我正在做以下事情:

tv = (TextView) row.findViewById(R.id.price);
tv.setText(getString(R.string.wishlist_price) + ": " + "293.99€");

getString(R.string.wishlist_price)在string.xml中定义为“Price”

现在奇怪的是: 对于上面的“293.99€”,手机上的输出如下:

Price: 293.99€

但如果我把钱换成22.95欧元,那么输出就像这样:

Price:
22.95€

所以在“Price:”之后它会换行 我无法找出造成这种情况的原因。

我用“2.99€”尝试了它,它给出了预期的输出:

Price: 2.99€

有人知道在“22.95€”示例中导致换行的原因是什么?

编辑: 围绕上面的两个线性布局。也许他们会引起这种奇怪的行为:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
>
    <LinearLayout
        android:id="@+id/product_item"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
    >

2 个答案:

答案 0 :(得分:1)

这可能有效,也可能无效,但使用String.format(String, Object...)似乎非常适合您正在做的事情。

首先将字符串R.string.wishlist_price更改为

<string name="wishlist_price">Price: %1$s</string>

然后使用它来调用它:

tv = (TextView) row.findViewById(R.id.price);
tv.setText(String.format(getResources().getString(R.string.wishlist_price), price));

请查看此内容以获取更多信息:Using String Resources

答案 1 :(得分:0)

我解决了它:

我将wrap_content更改为fill_parent:

<TextView
                android:id="@+id/price"
                android:paddingTop="2dp"
                android:paddingLeft="15dp"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textSize="12dp" />