当前位置: 首页 > 知识库问答 >
问题:

如何改变旋转器的颜色而不是下拉项?

海翼
2023-03-14

我添加了一个带有自定义listadapter的旋转器,它使用以下布局:

<?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;
    }
}

我现在使用两个布局,一个用于视图,一个用于DropDownView。我的代码中的另一个错误是我调用了super.getView(position,convertView,parent);在getDropDownView ovVerride中。

共有1个答案

郎飞龙
2023-03-14

只需使用所需的颜色制作两个布局,并设置如下所示:

ArrayAdapter<yourObjecttype> adapter = new ArrayAdapter<yourObjecttype(this,R.layout.simple_spinner_item, list);
adapter.setDropDownViewResource(R.layout.dropdown_layout);
 类似资料:
  • 我正试图改变Android中旋转器按钮的颜色,但我无法让它工作。有人能帮忙吗?

  • 我想通过以下方式更改JButton的颜色: 为了进行更改,我必须补充: 但是,这会删除边缘周围的曲线,从而更改按钮的形状。有没有一种方法可以简单地改变颜色并保留其他属性?另一个例子是当你按下一个按钮而没有改变它的颜色时,颜色的改变(变暗)。 下面是一些代码,说明了这两个按钮之间的区别: 谢谢

  • 出于某种原因,我的旋转器中选定项的文本颜色为白色。以下是活动的代码: 下面是simple_spinner_item的XML: 下拉项显示为红色,但不显示所选项。我试图将XML中的textColor更改为selector:并创建了这个选择器: 但是所选项目的文本颜色仍然是白色。所以我尝试在OnItemSelectedListener中这样做: 还是白色的... 为什么会发生这种情况,我如何修复它?谢

  • 我试图在我的应用中使用材料设计,为了使用浮动操作按钮,我使用了appcompat-v7库。但是,为了使用这个,我必须使用主题:“theme.appcompat.light”。我只是不能为API22设置应用程序的背景色。我对在API的20或贝娄上工作不感兴趣 我的主要活动:

  • 是的,所以我不知道我在做什么。哈。 我想改变select2的未打开的下拉菜单的颜色(也许还有边上的按钮),但是寻找解决方案只是设法阻碍了我 这样可以更改选项(这很好!)但并不是我想要的100%。 有没有改变下拉初始状态颜色的类