0

新しいレイアウトを作成しようとしています。私が最後に使用したレイアウトはGridLayoutで、基本的に3列8行のテーブルを作成しました。行スパンを使用すると、Eclipse内で希望の外観を実現できましたが、携帯電話の画面はEclipseよりも少し長く、1列目と2列目は見栄えがよく、3列目は右に伸びています。

新しいレイアウトは次のようになります。 ここに画像の説明を入力してください

**右側の矢印が画面の端をはるかに超えていることがわかりますが、理由はわかりません。さまざまなデバイスで使用したときに適切にスケーリングされるレイアウトを作成しようとしています。

XMLコードは次のとおりです。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightsum="1.0" >

            <ImageView
                android:id="@+id/arrowLeft"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight=".33"
                android:src="@drawable/arrowleftoff" />

            <Space 
                android:layout_width="0dp" 
                android:layout_height="match_parent"
                android:layout_weight=".34" />

            <ImageView
                android:id="@+id/arrowRight"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight=".33"
                android:src="@drawable/arrowrightoff" />



        </LinearLayout>

    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </LinearLayout>

    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </LinearLayout>

    </TableRow>

</TableLayout>
4

1 に答える 1

0

この問題は、Eclipseがレイアウトに関してどのように機能するかを理解していないことが原因でした。まず、Eclipseビジュアルレイアウトエディターに表示される画面は、ウィンドウの上部にある選択したデバイス(私の場合はNexus S)を使用した場合の「例」です。

第二に、私が使用していたレイアウトは、特定の要素または親に固定されていませんでした。したがって、画面の寸法が変わると、それに伴ってレイアウトも変わります。

結論:私は現在RelativeLayoutを使用して理解していますが、理解してしまえば驚異的に機能します。

何が起こっているのかを理解するのに本当に役立った素晴らしいリソースがあります: Mobile Tuts Plus:Layout Basics

于 2012-12-27T17:51:37.140 に答える