3

2つのウィジェット(スピナーなど)を線形レイアウトで並べて実装するのは難しいと感じています。つまり、両方のスピナーのレイアウトの高さはラップコンテンツですが、幅は最初のスピナーでは前半、2番目のスピナーでは画面の後半である必要があります。線形レイアウトでは、それらは互いに下降します。相対レイアウトで試しましたが、wrap_contentとして幅を指定すると、両方が隣り合っていますが、2番目のスピナーのすぐ近くに多くのスペースが残っています。私はいくつかのアプリでこれがうまくいくのを見ましたが、私はそれを取得していません。

ここに画像の説明を入力してください

4

4 に答える 4

8

を使用しlayout_weightます。これにより、2つのスピナーがそれぞれスペースの半分を占めるようになります。

<LinearLayout
    android:orientation="horizontal"
    ... >

    <Spinner
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        ... />

    <Spinner
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        ... />

</LinearLayout>
于 2012-09-10T18:20:38.267 に答える
0

ある日、まったく同じ問題が発生しました。私はまた、それを機能させるために多くの異なるトリックを踏みました。私は両方のスピナーをそれぞれのレイアウトに配置することを終了しました。奇妙でしたが、うまくいきました。

于 2012-09-10T18:16:42.343 に答える
0

相対レイアウトは、相互に関連するビューを配置することを目的としています。サイズとは何の関係もありません。

linearLayoutの場合、両方のビューの高さ/幅(レイアウトの方向に応じて)を0pxに設定し、重みを1に設定します。これにより、それぞれが半分のスペースを占めるようになります。

于 2012-09-10T18:20:08.077 に答える
0
<?xml version="1.0" encoding="utf-8"?>

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:entries="@array/testArray" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/background_light"
    android:orientation="horizontal" >

    <Spinner
        android:id="@+id/spinner2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:entries="@array/testArray" />

    <Spinner
        android:id="@+id/spinner3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
</LinearLayout>     
</LinearLayout>
于 2012-09-10T18:36:48.340 に答える