gpt4 book ai didi

android - 如何更改微调器的颜色而不是下拉项的颜色?

转载 作者:行者123 更新时间:2023-11-29 00:25:58 24 4
gpt4 key购买 nike

我添加了一个带有使用此布局的自定义列表适配器的 Spinner:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:gravity="center"
android:textColor="@drawable/default_spinner_item_text"
android:text="Sample Text"
android:textSize="20dp"
android:paddingBottom="7.5dp"
android:background="@drawable/default_spinner_item"
android:paddingTop="7.5dp">

</TextView>

可绘制的 default_spinner_item:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/default_button_text_color" />


<item android:state_checked="true" android:drawable="@android:color/transparent"/>
<item android:state_single="true" android:drawable="@android:color/transparent"/>
<item android:state_active="true" android:drawable="@android:color/transparent"/>
<item android:state_first="true" android:drawable="@android:color/transparent"/>
<item android:state_focused="true" android:drawable="@android:color/transparent" />
<item android:state_selected="true" android:drawable="@android:color/transparent" />


<item android:drawable="@color/default_button_border_color" />
</selector>

微调器总是与下拉项颜色相同...

我已经尝试了所有状态,但要使微调项背景透明和下拉列表着色(default_button_border_color)是不可能的。

@已解决

这是我的适配器:

public class CustomSpinnerAdapter extends ArrayAdapter<String> {

private int _resource;
private Typeface _typeFace;

public CustomSpinnerAdapter(MainActivity context, int resource, List<String> items) {
super(context, resource, items);
_resource = resource;
_typeFace = context.getDefaultAppTypeFace();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view = (TextView)super.getView(position, convertView, parent);
if(convertView == null)
view.setTypeface(_typeFace);
}
return view;
}

@Override
public TextView getDropDownView(int position, View convertView, ViewGroup parent) {
TextView view = (TextView) super.getDropDownView(position, convertView, parent);
if(convertView == null)
view.setTypeface(_typeFace);
}
return view;
}
}

我现在使用两种布局,一种用于 View ,一种用于下拉 View 。我的代码中的另一个错误是我调用了 super.getView(position, convertView, parent);在 getDropDownView 覆盖中。

最佳答案

只需制作两个具有所需颜色的布局并将其设置如下:

ArrayAdapter<yourObjecttype> adapter = new ArrayAdapter<yourObjecttype(this,R.layout.simple_spinner_item, list);
adapter.setDropDownViewResource(R.layout.dropdown_layout);

关于android - 如何更改微调器的颜色而不是下拉项的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19444944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com