【发布时间】:2014-07-22 03:11:10
【问题描述】:
我有一个自定义微调器,我正在尝试替换 DropDownSelector 中的 9-patch 背景/三角形。
我只是无法让它正常工作。我最终得到(白框是测试资产):
显示了新的 9 补丁,但它弄乱了填充,看起来就像 Spinner 中的 Spinner。
这是未添加 9 补丁时的样子:
这就是我希望它看起来的样子,但是使用新的 9patch 而不是旧的,而不是 Spinner 效果中的 Spinner。
这是我的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:gravity="center_horizontal"/>
</RelativeLayout>
我将这个 RelativeLayout 添加到 Actionbar,并设置一个自定义微调器适配器:
SpinnerAdapter mSpinnerAdapter = (new SpinnerCustomAdapterDark(this, R.layout.customSpinnerTitleLayout, categoryNames ));
spinner = findViewById(R.id.spinner2);
categorySpinnerMenuitem = (Spinner) spinner;
categorySpinnerMenuitem.setAdapter(mSpinnerAdapter);
这是为适配器设置的 CustomSpinnerTitleLayout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
style="?android:attr/spinnerDropDownItemStyle"
android:paddingRight="0dp" >
<ImageView
android:id="@+id/spinner_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:layout_gravity="center"
android:paddingRight="0dp"
/>
</LinearLayout>
这是我添加 9 补丁的主题
<resources>
<style name="CustomTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:spinnerDropDownItemStyle">@style/customActionBarDropDownStyle</item>
</style>
<style name="customActionBarDropDownStyle" parent="@android:style/Widget.Holo.Light.ListView" >
<item name="android:background">@drawable/spinner9patch</item>
</style>
</resources>
我显然做错了什么,但是什么?我尝试在第一个布局文件中的 Spinner 处设置 spinnerDropDownItemStyle 和 spinnerStyle,但什么也没做。我在这里做错了什么?
提前致谢!!
【问题讨论】:
-
尝试查看这些链接,Styling the ActionBar
标签: android android-layout android-spinner android-styles