
当点击这个微调器时,它会给出一个很大的下拉:

我想要一个非常小的视图,如第二张图片.就像ASP.NET中的下拉菜单一样.像这样宽度稍微减少.

我使用了以下代码.任何帮助改变第二图像的视图将不胜感激.
Spinner spinner = (Spinner) findViewById(R.id.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);
Run Code Online (Sandbox Code Playgroud)
这是一篇好文章: 自定义操作栏
你也可以尝试这个:
为旋转器背景设计您自己的定制drawable并应用于它.对于spinnerbackground.xml映像,您可以引用SDK中的映像.根据您的设计要求重新创建图像
"Android的SDK \平台\ Android的9\DATA \水库\绘制,华电国际\*.PNG"
spinnerbackground.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/wlbtn_dropdown_normal" />
<item
android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/wlbtn_dropdown_disabled" />
<item
android:state_pressed="true"
android:drawable="@drawable/wlbtn_dropdown_pressed" />
<item
android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/wlbtn_dropdown_selected" />
<item
android:state_enabled="true"
android:drawable="@drawable/wlbtn_dropdown_normal" />
<item
android:state_focused="true"
android:drawable="@drawable/wlbtn_dropdown_disabled_focused" />
<item
android:drawable="@drawable/wlbtn_dropdown_disabled" />
</selector>
Run Code Online (Sandbox Code Playgroud)
然后为微调框小部件应用您的自定义drawable:
<Spinner android:background="@drawable/spinnerbackground"
android:id="@+id/spinnerIDr"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
</Spinner>
Run Code Online (Sandbox Code Playgroud)
编辑:
<Spinner android:background="@drawable/spinnerbackground"
android:id="@+id/spinnerIDr"
android:popupBackground="@drawable/popup_background"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
</Spinner>
Run Code Online (Sandbox Code Playgroud)
popup_background的位置是:

和
为微调文本设计自定义布局为(name:custom_spiner.xml)
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="4dp"
android:textSize="14sp"
android:typeface="serif"
android:singleLine="true"
android:layout_marginLeft="2dip"
android:layout_marginRight="5dip"
android:ellipsize="marquee"
android:textColor="#000000">
</TextView>
Run Code Online (Sandbox Code Playgroud)
并用它作为
adapter.setDropDownViewResource(R.layout.custom_spiner);
Run Code Online (Sandbox Code Playgroud)
在你的代码中.
编辑2:
如果你想用java代码读取PopupWindow
并且可能很有用:自定义微调器