我有几个列表项。一个是有效的,另一个没有,它们看起来都相同。这真的应该是一个在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>
答案 0 :(得分:1)
MoonlightCheese,
我可以在您的代码中找到的唯一区别是:在有效的布局中,名为@+id/ici_uom
的TextView的填充为1sp
。由于没有合理的原因,我可以弄清楚为什么这一行会导致任何差异,因为它不应该。您可能会更改此值,甚至可能将其添加到其他列表中,并且看不到行为上的差异。因此,我倾向于认为ListView
本身或与父母的关系有所不同。
我这样说是因为您的列表项 是正确的,这是绝对的事实。似乎宽度在每个元素的基础上是关闭的。 fill_parent
中的LinearLayout
应该是指标。我会重新分析列表本身以及您可能如何填充视图。
如果没有您的父标记,很难确切地说出发生了什么以及为什么。这是因为我们不知道你如何使用ListView
,如果有多个,如果一个是ListActivity
而另一个不是,或者甚至是它们是如何嵌套的。
根据外观上的差异,我 假设 您有两个ListView
s并且为了进一步帮助您,我们需要标记为他们和他们的父母。如果没有标记,那就是我要告诉你的地方。
希望这有帮助,
FuzzicalLogic
答案 1 :(得分:1)
答案 2 :(得分:0)
我认为textviews上的重力并不意味着你的情况,因为layout_width是wrap_content,这意味着textview将与你的文本一样大。如果您尝试将android:layout_gravity =“right”添加到TableLayout,该怎么办?