
当o单击此微调器时,它会给出一个很大的下拉列表:

我想要一个非常小的视图,如第二张图片所示。就像ASP.NET中的dropdowns一样。就像这样,宽度稍微减少了一点。

我使用了以下代码。任何有助于改变第二张图片的视图都将不胜感激。
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);发布于 2011-08-10 13:33:38
这是一篇好文章: Customizing the Action Bar
你也可以试试这个:
设计您自己的自定义绘图微调背景,并适用于它。对于spinnerbackground.xml镜像,您可以参考SDK中的镜像。根据您的设计要求重新创建图像
"Android-sdk\platforms\android-9\data\res\drawable-hdpi\*.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>然后,对于微调窗口小部件,应用您的自定义drawable:
<Spinner android:background="@drawable/spinnerbackground"
android:id="@+id/spinnerIDr"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
</Spinner>编辑:
<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>其中,popup_background是:

和
将微调器文本的自定义布局设计为(名称: 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>并将其用作
adapter.setDropDownViewResource(R.layout.custom_spiner);在你的代码中。
编辑2:
如果您想使用java代码来实现这一点,请阅读关于PopupWindow
可能会很有用:custom-spinner
发布于 2011-08-10 14:00:38
请按照以下步骤操作。我已经实现了这一点。
(1)请勿使用微调器。相反,使用背景设置为"@android:drawable/btn_dropdown“的按钮。此按钮看起来与本机微调器完全相同。如果您希望它看起来有所不同,请使用您自己的资源。
(2)您需要重写对话框类并在单击按钮时调用它。在扩展的Dialog类的构造函数中,您可以使用自己的布局资源。
this.setContentView(R.layout.dropdownlist);您还可以使用以下代码更改窗口外观
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.width = dlgWidth;
lp.height = dlgHeight;
lp.dimAmount = 0;
getWindow().setAttributes(lp);
getWindow().setBackgroundDrawableResource(mBackgroundResId);(3)你可以在你的自定义布局中有一个列表视图,在列表的"OnItemClickListener“上,关闭对话框,做你需要做的进一步的事情。
我希望这能帮到你。
发布于 2014-02-11 21:50:59
在微调器标记中添加属性
android:dropDownWidth="150dp"
https://stackoverflow.com/questions/7006081
复制相似问题