我希望能够在同一行显示产品的名称和价格。现在,它显示为: 产品名称 产品价格
我尝试添加一个水平方向的线性布局,尝试使用权重/重量,并且无法弄清楚如何正确显示,就像在普通菜单中一样,名称在左侧和价格在右边。我也试过设置它们的引力,但它总是将它们显示在两行上。我想这样显示它们:
产品名称...........................产品价格
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="#ffffff">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/Price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/Remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center"
android:text="Remove product(s)" />
</LinearLayout>
</LinearLayout>
我如何添加项目:
oslist = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
map.put(PROD_NAME, name);
map.put(PROD_PRICE, price);
oslist.add(map);
adapter = new SimpleAdapter(shopping_cart.this, oslist,
R.layout.shoppingcart,
new String[] {PROD_NAME, PROD_PRICE}, new int[] {R.id.name, R.id.Price});
setListAdapter(adapter);
答案 0 :(得分:0)
使用RelativeLayout
创建这样的布局通常更容易,因为它可以让您更好地控制视图的位置。您可以使用名称元素layout_alignParentLeft="true"
和价格元素layout_alignParentRight="true"
(可能layout_gravity="right"
来对齐文字)。
修改
这是您的XML可能是什么样子。如果您使用的是layout_gravity
,则您实际上不需要layout_width="wrap_parent"
属性,并且我省略了删除按钮,因为我不确定您希望它在哪里。
这种布局允许名称和价格重叠,如果它们太长 - 可能最好的选择是将名称元素放在中的价格元素并添加{{1它。这迫使它包装名称而不是重叠价格。
layout_toLeftOf="@id/Price"