我已经搜索了很多,以找到我的查询的正确答案,但遗憾的是没有解决方案。
我有一个Spinner,
<Spinner
android:id="@+id/dropdown_payment_methods"
android:layout_width="match_parent"
android:layout_height="@dimen/height_list_of_societies_xhdpi"
android:gravity="center"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/margin_left_right_dropdown_payment_methods_xhdpi"
android:layout_marginRight="@dimen/margin_left_right_dropdown_payment_methods_xhdpi"
android:entries="@array/various_payment_methods"
android:popupBackground="@android:color/white"
android:spinnerMode="dialog" />
注意:我没有打开我的Spinner作为默认下拉选项,而是像对话框一样。我能找到的最接近的参考文献是下面的链接。
但它也提到该样式仅适用于默认下拉选项。
当我打开Spinner作为对话框时,需要帮助我如何自定义分隔符颜色和高度。
答案 0 :(得分:0)
创建自定义项目布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_spinner_data" >
<TextView
android:id="@+id/spinner_item"
style="@style/TextNormal14Grey"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end" />
<TextView
android:id="@+id/border"
android:background="@android:color/black"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:ellipsize="end" />
</RelativeLayout>
边框对应于您的分隔线。
然后使用数组适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.custom_item,R.id.spinner_item,getResources.getStringArray(R.id.various_payment_methods));
然后将其设置为活动中的微调器
((Spinner)findViewById(R.id.dropdown_payment_methods)).setAdapter(adapter);
答案 1 :(得分:0)
Dialog微调器使用AlertDialog显示其内容。 AlertDialog引用了AlertController,它控制对话框中的ListView。 您需要访问该列表视图以更改微调器的分隔颜色。而且似乎唯一可以访问Listview的方法是通过扩展ArrayAdapter来创建自定义微调器适配器。
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
removeDividers(parent);
..
}
private void removeDividers(View view) {
if (view instanceof ListView) {
((ListView) view).setDivider(new ColorDrawable(ContextCompat.getColor(getContext(), android.R.color.holo_blue_dark)));
((ListView) view).setDividerHeight(10);
}
}