0

4 と 6の 2 つの子を持つLinearLayoutwith 10 があります。背景が色または何もない場合は問題なく動作します。しかし、背景画像を設定すると問題が発生します。問題と解決策は何ですか?weightSumLinearLayoutlayout_weight

作業コード:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

    android:weightSum="10" >

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="4"
        android:background="@color/Blue"
 >

    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="6"
        android:background="@color/new_back"
        android:orientation="vertical"
        android:weightSum="10" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="5"
            android:gravity="center"
            android:orientation="horizontal"
            android:weightSum="99" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnCustomers"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/customer" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Chemist"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnOrder"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/order" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Order"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnItemStatus"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/item_status" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Item Status"
                    android:textColor="#000000" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="5"
            android:gravity="center"
            android:orientation="horizontal"
            android:weightSum="99" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnNotification"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/notification" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Notification"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnAttendance"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/attendance" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Attendance"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnExpenceClaim"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/expence_clain" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Exp. Claim"
                    android:textColor="#000000" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

問題のあるコード:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

    android:weightSum="10" >

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="4"
        android:background="@drawable/top_menu"
 >

    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="6"
        android:background="@color/new_back"
        android:orientation="vertical"
        android:weightSum="10" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="5"
            android:gravity="center"
            android:orientation="horizontal"
            android:weightSum="99" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnCustomers"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/customer" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Chemist"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnOrder"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/order" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Order"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnItemStatus"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/item_status" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Item Status"
                    android:textColor="#000000" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="5"
            android:gravity="center"
            android:orientation="horizontal"
            android:weightSum="99" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnNotification"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/notification" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Notification"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnAttendance"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/attendance" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Attendance"
                    android:textColor="#000000" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/idbtnExpenceClaim"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/expence_clain" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Exp. Claim"
                    android:textColor="#000000" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

4

4 に答える 4

0

解決策を見つけました!問題は、その特定の xml ファイルの Eclipse で設定されたレイアウト テーマにありました。Theme.NoTitleBarそのxmlファイルでテーマが設定されました。デフォルトの に切り替えましたAppThemeTheme.Light、動作するようになりました。:)

于 2014-03-12T08:27:24.620 に答える
0

これは、 に関する一般的な誤解ですlayout_weight。各アイテムの に基づいて親ビューの合計スペースを分割するのではなく、分割されるのweightエクストラ スペースです。

公式ドキュメントがレイアウトの重量について述べているように、私は引用します:

LinearLayout は、android:layout_weight 属性を使用して個々の子に重みを割り当てることもサポートしています。この属性は、画面上でどのくらいのスペースを占めるべきかという観点から、ビューに「重要度」の値を割り当てます。ウェイト値を大きくすると、拡大して親ビューの残りのスペースを埋めることができます。子ビューは重み値を指定でき、ビュー グループ内の残りのスペースは、宣言された重みの割合で子に割り当てられます。デフォルトの重みはゼロです。

あなたの場合、layout_height0dp手段に設定します。wrap_content画像が十分に大きいため、親ビューのほとんどすべてのスペースを占有し、に基づいて分割される余分なスペースlayout_weightがなくなります。wrap_contentfor pure color はちょうど 1dp なので、十分な余分なスペースがあるので問題なく動作します。

要約すると、layout_weight期待どおりに動作させるには、各ビューは親ビューの重みよりも小さくする必要があります。

これを修正するには、重みを 4 に設定してweight=4ビューを新しいものにラップするだけです。LinearLayout

于 2014-03-12T08:39:28.353 に答える