Android Spinner大小非常大

我试图让我的应用程序中的ICS微调,并玩了几个小时,最后我用HoloEverywhere来得到这个,它的工作,但我有一个小问题,是微调不包装内容,我在xml中设置,默认情况下是这样的:

在这里输入图像说明

真的,我search了几个小时,我发现的是,如何调整微调项目,而不是视图本身,意味着我想调整到所选的项目大小,如下所示:

在这里输入图像说明

这是我的XML:

<RelativeLayout android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal" > <org.holoeverywhere.widget.Spinner android:id="@+id/spnCities" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="10dp" /> <TextView android:id="@+id/tvCities" android:layout_width="70dp" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:text="@string/city" android:textAppearance="?android:attr/textAppearanceSmall" /> 

任何帮助将受到欢迎。

谢谢。

    微调器的最大宽度是他的项目,但最多是父宽度(在layout_width = wrap_content上)。 您可以在org.holoeverywhere.widget包中创buildCustomSpinner类,并覆盖方法measureContentWidth:

     @Override int measureContentWidth(SpinnerAdapter adapter, Drawable background) { if (adapter == null) { return 0; } View view = adapter.getView(getSelectedItemPosition(), null, this); if (view.getLayoutParams() == null) { view.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); } view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); int width = view.getMeasuredWidth(); if (background != null) { Rect mTempRect = new Rect(); background.getPadding(mTempRect); width += mTempRect.left + mTempRect.right; } return width; }