1

2.3の私のスピナー:

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

および4.0の場合:

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

これが私のコードです:

Spinner s = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<?> adapter = ArrayAdapter.createFromResource(
            this, R.array.planets, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    s.setAdapter(adapter);

レイアウト:

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

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dip"
        android:text="Please select a planet:"
    />

    <Spinner 
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="true"
    />
</LinearLayout>

そして配列リソース、

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets">
        <item>a</item>
        <item>aa</item>
        <item>aaa</item>
        <item>aaaa</item>
        <item>aaaaa</item>
        <item>aaaaaa</item>
        <item>aaaaaaa</item>
        <item>aaaaaaaa</item>
    </string-array>
</resources>

2.3では、スピナーのレイアウト幅はスピナーアイテムのコンテンツに基づいていますが、最も幅の広いコンテンツでは修正され、4.0では他のコンテンツでは変更されないことに気付きました。スピナーレイアウトがfill_parentに設定されていても問題はありませんが、wrap_contentスピナーが必要です...

両方のシステムで一貫性を保つ方法を知っていますか?コンテンツの長さが大きく異なると見苦しくなりますので。

ありがとうございました。

4

1 に答える 1

0
  1. スピナーに設定されたレイアウトの重みを使用してみることができます。

  2. 別の可能性は、デバイス幅の半分またはデバイス幅の 3 分の 1 など、プログラム的にスピナーの幅を設定することです。

于 2012-04-26T09:01:23.643 に答える