Android:xml布局问题

Android:xml布局问题,android,xml,android-layout,Android,Xml,Android Layout,我确信这一定是个小问题,但我无法使它工作。我有一个包含两列的xml(权重:5和1,正如您在table.xml中看到的那样),它工作得非常好。现在,我已经添加了另一个标题,数据并没有像以前那样以权重放置在两列中,而是全部放置在一起,除了标题可以正常工作 我不想把固定宽度的值,所以我想与重量的方式解决 以下是我正在使用的两种xml: header.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout android

我确信这一定是个小问题,但我无法使它工作。我有一个包含两列的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>

多谢各位

试试这个。这对你有帮助

<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>

您没有在使用重量的所有位置将宽度设置为0dp。有时,如果遗漏,这会导致布局中的垃圾输出。尝试将宽度设置为0dp,看看是否能解决问题

一个你没有做过的例子是:

 <!-- ListView (grid_items) -->
 <LinearLayout android:id="@+id/layout"
 android:layout_width="wrap_content"
 android:layout_height="fill_parent"
 android:layout_weight="6">


检查其他地方是否有相同的东西。

试试这一个,因为您没有为布局提供方向,这会导致错误, 如果不使用
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>
<?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>

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: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>
<?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>


遗憾的是,结果是一样的,paiseur和cantidadeur两列仍然在一起。相同的结果,标题显示完美,但不是第二个xml的数据。是否要在第二个xml中设置数据@IvánGonzaloYes,我做的是:setContentView(R.layout.header);ListView lv=(ListView)findViewById(android.R.id.list);simpledapter adapter=newsimpledapter(Verpaiseur.this,paisesList,R.layout.table,新字符串[]{TAG_-PID,TAG_-PAIS,TAG_-TOTAL},新int[]{R.id.PID,R.id.paiseur,R.id.cantidadeur});低压设置适配器(适配器);我将值设置为table.xml,但仍然将所有列显示在一起,而没有考虑我在代码中尝试过的权重,对我来说,它将显示所有三个单独且适当的列。你的生活会有多大变化@Ivángonzalo尝试了,但没有工作。当我放置来自适配器的数据时,我仍然存在table.xml的问题