我正在尝试在我的微调器中显示一个布尔选中标记以及每个选项。我试图在styles.xml中设置checkmark参数:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:colorBackground">@color/backgroundColor</item>
<item name="cardBackgroundColor">@color/cardBackgroundColor</item>
</style>
<style name="SpinnerTheme" parent="AppTheme">
<item name="android:colorBackground">@color/background_material_dark_spinner</item>
<item name="android:checkMark">?android:attr/listChoiceIndicatorSingle</item>
</style> </resources>
这在我的Spinner中:
<Spinner
android:theme="@style/SpinnerTheme"
style="@style/SpinnerTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/unitsSpinner"
android:entries="@array/units_array"
android:backgroundTint="@color/text_color_hint"
/>
但我的微调器选项看起来像this。 有没有办法解决这个问题?我想避免创建一个自定义视图只是为了解决这个问题。
答案 0 :(得分:1)
我认为您必须创建自定义视图。如果您找到任何方式,请更新您的答案,如果您想创建它,请检查this
快乐的编码!
答案 1 :(得分:0)
尝试更改微调器的布局,而不是更改微调器的样式。如果您使用默认的Android布局,则尝试使用 android.R.layout.simple_list_item_single_choice 布局提供选择,如果您使用自定义布局,则可以根据使用情况使用复选框或单选按钮。
答案 2 :(得分:0)
解决!遵循以下步骤:
- 设置样式,如问题中所述,
- 使用自定义样式设置Spinner主题:
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
android:theme="@style/SpinnerTheme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/productCountSpinner"
/>
- 在java代码中,使用布局资源simple_spinner_dropdown_item创建一个适配器,并将其设置为微调器:
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, mContext.getResources().getStringArray(R.array.units_array));
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mProductCountSpinner.setAdapter(spinnerArrayAdapter);
这是result。