1

ここのようなスピナーを実装しました。そして今、スピナーをActionBarに配置したい(スピナーをCustomViewとしてactionBarに設定する)が、そこには表示されない:(

Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.planets_array, android.R.layout.simple_spinner_item);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

        spinner.setAdapter(adapter);

        actionBar.setCustomView(spinner);

ここに.XMLがあります

<?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:baselineAligned="false"
    android:orientation="vertical" >

    <FrameLayout
        android:id="@+id/parkfragment"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <Spinner
        android:id="@+id/planets_spinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

ActionBar DropDown List の使用を提案しないでください。既に ActionBar タブを使用しているため、使用できません。Android では、両方を同時に使用することはできません。どんな助けでも大歓迎です

4

1 に答える 1

6

コードに次の行がありません:

actionBar.setDisplayShowCustomEnabled(true); 

参照ActionBar#setDisplayShowCustomEnabled(boolean showCustom)してください。


アップデート:

FrameLayoutすべての幅と高さを占める空のレイアウトがレイアウトにあるのはなぜですか? それを除く。も削除しLinearLayoutます。これをレイアウトとして使用するだけです:

<?xml version="1.0" encoding="utf-8"?>
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/planets_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" /> 

そして、次のように書くと、すべて問題ありません。

actionBar.setCustomView(R.layout.your_layout_with_the_spinner);
actionBar.setDisplayShowCustomEnabled(true);

Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
于 2013-03-21T11:25:45.460 に答える