我的应用程序布局存在问题。 我有一个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"
>
答案 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" />