我确定它一定是个小问题,但我无法让它发挥作用。我有一个xml有两列(权重:5& 1,你可以在table.xml中看到)完美的工作。现在,我已经添加了另一个带有标题,并且数据没有被放置在两列中,权重与之前一样,并且它被放在一起,除了工作正常的标题。
我不想放置修正宽度值,所以我喜欢用重量方式解决方案。
以下是我使用的两个xml:
header.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/header"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<!-- Header -->
<LinearLayout android:background="#1d688f"
android:paddingTop="6dip"
android:paddingBottom="6dip"
android:paddingLeft="6dip"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TextView
android:id="@+id/pid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
<TextView
android:id="@+id/paiseur"
android:layout_width="0dp"
android:layout_weight="5"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="20sp"
android:text="@string/pais"/>
<TextView
android:id="@+id/cantidadeur"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textStyle="bold"
android:gravity="center"
android:textSize="20sp"
android:text="@string/total" />
</LinearLayout>
<!-- List Divider -->
<View android:layout_width="fill_parent"
android:layout_height="5dip"
android:background="?android:attr/listDivider" />
<!-- ListView (grid_items) -->
<LinearLayout android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="6">
<ListView android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="0dp"
android:layout_weight="6">
</ListView>
</LinearLayout>
</LinearLayout>
列表中的那个,table.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="6dip"
android:paddingBottom="6dip"
android:paddingLeft="6dip"
android:layout_weight="6"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/pid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
<TextView
android:id="@+id/paiseur"
android:layout_width="fill_parent"
android:layout_weight="5"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="20sp" />
<TextView
android:id="@+id/cantidadeur"
android:layout_width="fill_parent"
android:layout_weight="1"
android:layout_height="wrap_content"
android:textStyle="bold"
android:gravity="center"
android:textSize="20sp" />
</LinearLayout>
我试图在table.xml中将宽度更改为paiseseur的220dp,它确实将coulmns分开,但是我希望在标题中有重量。
我添加代码以防它有事可做:
setContentView(R.layout.header);
ListView lv = (ListView) findViewById(android.R.id.list);
SimpleAdapter adapter = new SimpleAdapter(
Verpaiseur.this, paisesList,
R.layout.table, new String[]{TAG_PID, TAG_PAIS, TAG_TOTAL},
new int[]{R.id.pid, R.id.paiseur, R.id.cantidadeur});
lv.setAdapter(adapter);
非常感谢!
答案 0 :(得分:1)
试试这个。这会对你有所帮助。
<LinearLayout android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="6">
<ListView android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="match_parent">
</ListView>
答案 1 :(得分:0)
在所有使用过重量的地方,你没有将宽度设置为0dp。有时如果错过了这会导致布局中的垃圾输出。尝试在您使用重量的地方将宽度设置为0dp,看看是否能解决您的问题。
你没有这样做的一个例子是:
<!-- ListView (grid_items) -->
<LinearLayout android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="6">
检查其他地方是否存在同样的事情。
答案 2 :(得分:0)
尝试这个,因为你没有给出布局方向导致错误,
不使用weightSum
您将无法获得正确的解决方案,如果您获得该解决方案,则不适用于所有其他设备 。
<强> header.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<!-- Header -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#1d688f"
android:orientation="horizontal"
android:paddingBottom="6dip"
android:paddingLeft="6dip"
android:paddingTop="6dip"
android:weightSum="7">
<TextView
android:id="@+id/pid"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="visible" />
<TextView
android:id="@+id/paiseur"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:text="pais"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/cantidadeur"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="total"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
<!-- List Divider -->
<View
android:layout_width="fill_parent"
android:layout_height="5dip"
android:background="?android:attr/listDivider" />
<!-- ListView (grid_items) -->
<LinearLayout
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="6">
<ListView
android:id="@android:id/list"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="6"></ListView>
</LinearLayout>
</LinearLayout>
<强> table.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="5dp"
android:orientation="horizontal"
android:weightSum="7">
<TextView
android:id="@+id/pid"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="1"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="visible" />
<TextView
android:id="@+id/paiseur"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:gravity="center"
android:text="paiseur"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/cantidadeur"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="cantidadeur"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>