为什么编程创建的微调器是透明的

时间:2014-04-10 20:03:38

标签: java android transparency android-spinner

我正在以编程方式创建一个微调器:

 ArrayAdapter<String> myArrayAdapter = new ArrayAdapter<String>(MyActivity.this, android.R.layout.simple_spinner_dropdown_item, myList);
                myArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

                Spinner spinner = new Spinner(MyActivity.this);
                spinner.setAdapter(myArrayAdapter);
                spinner.setLayoutParams(new ViewGroup.LayoutParams(
                        ViewGroup.LayoutParams.MATCH_PARENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT));

                buttonLayout.addView(spinner);

有人可以帮忙吗?

enter image description here

更新

以下是静态元素的代码:

<TextView
    android:id="@+id/txt_user"
    android:text="@string/txt_user_lbl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<TextView
    android:id="@+id/txt_2"
    android:text="@string/txt_disease_lbl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/txt_user"/>

<Spinner
    android:id="@+id/dd_2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:drawable/btn_dropdown"
    android:spinnerMode="dropdown"
    android:layout_below="@+id/txt_2"/>

<TextView
    android:id="@+id/txt_1"
    android:text="@string/txt_medicine_lbl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/dd_2"/>

<Spinner
    android:id="@+id/dd_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:drawable/btn_dropdown"
    android:spinnerMode="dropdown"
    android:layout_below="@+id/txt_1"/>

<ScrollView
    android:id="@+id/scrollBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/dd_1">
<LinearLayout
    android:id="@+id/buttonLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="3dp"
    android:layout_marginRight="3dp"
    android:orientation="vertical">


<Button
    android:id="@+id/add_Button"
    android:text="@string/add_Button_lbl"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    />

<Button
    android:id="@+id/ok_Button"
    android:text="@string/ok_Button_lbl"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/add_Button"/>

<Button
    android:id="@+id/exit_Button"
    android:text="@string/exit_Button_lbl"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/ok_Button"/>
</LinearLayout>
</ScrollView>

1 个答案:

答案 0 :(得分:2)

  

有人可以帮忙吗?

android.R.layout.simple_spinner_item构造函数中使用ArrayAdapter,而不是android.R.layout.simple_spinner_dropdown_item

您以编程方式添加Spinner正在使用全息小部件主题,例如Theme.Holo。你的“静态微调器” - 无论你得到它 - 都使用遗留主题,如Theme。如果您希望它们看起来相同,则需要使用相同的主题。通常,这会自动发生。

如果您最近(在过去几个月内)从Eclipse或Android Studio获得@style/AppTheme,并且未在生成的 styles.xml 文件中更改任何内容,那么这应该给出在API Level 11+设备或模拟器上运行时,基于Theme.Holo的主题。

您需要从两个静态元素中删除android:backgroundandroid:spinnerMode