1

私はいくつかのリストアイテムを持っています。1つは機能し、もう1つは機能せず、どちらもかなり同じように見えます。これは本当にXMLファイルの「違いを見つける」ゲームであるはずですが、私は一生の間、何が悪いのかを理解することはできません。xmlに示されているように、リスト項目の1つは完全であり、もう1つはレイアウトの右側にあるビューの一部を正当化することを拒否します。コードが含まれている場合、それぞれがどのように見えるかを次に示します。

^ 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

MoonlightCheese、

私があなたのコードで見つけることができる唯一の違いは次のとおりです:機能するレイアウトでは、名前付きのTextViewには。@+id/ici_uomのパディングがあり1spます。論理的な理由はありませんが、この1行で不一致が発生するはずがない理由を理解できません。この値を変更したり、他のリストに追加したりしても、動作に違いは見られない可能性があります。その結果、私はListView自分自身や両親との関係に何か違うものがあると信じる傾向があります。

あなたのリスト項目が右に正当化されていることは絶対的な事実であるため、私はこれを言います。幅は要素ごとにずれているようです。のはインジケーターfill_parentである必要があります。LinearLayoutリスト自体と、場合によってはビューへの入力方法を再分析します。

親のマークアップがないと、何が起こっているのか、そしてその理由を正確に言うのは困難です。これは、ListViewsをどのように使用しているか、複数あるか、一方がaListActivityで、もう一方がそうでないか、またはそれらがどのようにネストされているかさえわからないためです。

外観の違いに基づいて、2つListViewのがあり、さらに支援するために、それらとその親のマークアップが必要になると思います。マークアップがなければ、それは私があなたに見るように言うところです。

お役に立てれば、

FuzzicalLogic

于 2012-06-08T21:15:40.373 に答える
0

layout_widthはwrap_contentであるため、textviewの重力は、あなたの場合には何の意味もないと思います。つまり、textviewはテキストと同じ大きさになります。TableLayoutにandroid:layout_gravity="right"を追加しようとするとどうなりますか。

于 2012-06-08T21:18:01.490 に答える