1

我有几个清单项目。一个有效,另一个无效,而且它们看起来都非常相似。这确实应该是在 XML 文件中“找出差异”的游戏,但我终其一生都无法找出问题所在。一个列表项是完美的,另一个拒绝证明布局右侧的某些视图是合理的,如 xml 中所示。这是它们各自包含代码的样子。

^ list_view_item_2.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:padding="5dp">
    <TextView
        android:id="@+id/item_text_product"
        android:textSize="20sp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_width="0dp"/>
    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TableRow>
            <TextView
                android:id="@+id/item_text_total"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_span="2"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/item_text_units"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
            <TextView
                android:id="@+id/item_text_uom"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/text_acog"
                android:text="COG:"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
            <TextView
                android:id="@+id/item_text_acog"
                android:paddingLeft="1sp"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
    </TableLayout>
</LinearLayout>

下一个布局是有效的。

^inventory_child_item.xml:代码看起来相同,大部分...

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:padding="5dp">
    <TextView
        android:id="@+id/ici_site"
        android:textSize="20sp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_width="0dp"/>
    <TableLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TableRow>
            <TextView
                android:id="@+id/ici_units"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
            <TextView
                android:id="@+id/ici_uom"
                android:paddingLeft="1sp"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/ici_total"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_span="2"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
        <TableRow>
            <TextView
                android:id="@+id/ici_price"
                android:gravity="right"
                android:textStyle="bold"
                android:layout_span="2"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </TableRow>
    </TableLayout>
</LinearLayout>
4

3 回答 3

2

您需要将match_parent设置为ListView

喜欢:

android:layout_width="match_parent"

于 2012-06-08T21:23:39.543 回答
1

月光奶酪,

我可以在您的代码中找到的唯一区别是:在有效的布局中,您命名的 TextView@+id/ici_uom的填充为1sp. 出于逻辑上的原因,我无法弄清楚为什么这一行会导致任何不应该的差异。您可能会更改此值,甚至将其添加到另一个列表中,但不会发现行为有任何差异。因此,我倾向于相信ListView他们自己或他们与父母的关系有一些不同。

我这样说是因为你的列表项是正确的,这是一个绝对的事实。似乎每个元素的宽度都关闭了。fill_parent中的应该LinearLayout是指标。我会重新分析列表本身以及您如何填充视图。

没有您的父标记,很难准确地说出发生了什么以及为什么。这是因为我们不知道你是如何使用ListViews 的,如果有多个,如果一个是 aListActivity而另一个不是,甚至它们是如何嵌套的。

基于外观上的差异,我假设您有两个ListViews,为了进一步帮助您,我们需要他们及其父母的标记。没有标记,这就是我要告诉你看的地方。

希望这可以帮助,

模糊逻辑

于 2012-06-08T21:15:40.373 回答
0

我认为 textviews 上的重力在您的情况下没有任何意义,因为 layout_width 是 wrap_content,这意味着 textview 将与您的文本一样大。如果您尝试将 android:layout_gravity="right" 添加到您的 TableLayout。

于 2012-06-08T21:18:01.490 回答