简体   繁体   English

自定义样式 setDropDownViewResource Android Spinner

[英]Custom style setDropDownViewResource Android Spinner

Below is my current code that adds my array_spinner to my adapter and then adds the adapter to my spinner.下面是我当前的代码,它将我的 array_spinner 添加到我的适配器,然后将适配器添加到我的微调器。 QUESTIONS:问题:

1- I am not sure how I would use the following code to style my drop down: areaspinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 1- 我不确定如何使用以下代码来设置下拉样式: areaspinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); and how do I apply a custom view/text view?以及如何应用自定义视图/文本视图? I need to style the text item in the spinner drop down.我需要在微调下拉菜单中设置文本项的样式。

2- Do I need to create aa separate layout.xml file for this view? 2- 我需要为此视图创建一个单独的 layout.xml 文件吗?

Any info would be great.任何信息都会很棒。 Thanks!谢谢!

array_spinner=new String[4];
array_spinner[0]="Select";
array_spinner[1]="George Washington";
array_spinner[2]="Benjamin Franklin";
array_spinner[3]="Thomas Jefferson";

 //CREATE SPINNER
areaspinner = (Spinner) findViewById(R.id.areaspinner);

ArrayAdapter<String> adapter = 
    new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item,array_spinner);
areaspinner.setAdapter(adapter);
  1. If your intention is to achieve different styling of drop down list items with respect to spinner view selected item styling, you have to indeed provide your custom layout id to setDropDownViewResource() .如果您的目的是针对微调视图所选项目样式实现下拉列表项的不同样式,则必须确实将自定义布局 ID 提供给setDropDownViewResource() In your layout you just have to declare TextView as root element because it is required by ArrayAdapter在您的布局中,您只需将TextView声明为根元素,因为ArrayAdapter需要它

  2. Yes, you need to create separate your_layout_name.xml file in res/layout directory for each layout you declare.是的,您需要在 res/layout 目录中为您声明的每个布局创建单独的 your_layout_name.xml 文件。

This is how you use the setDropDownViewResource() in your code这就是您在代码中使用 setDropDownViewResource() 的方式

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
areaspinner.setAdapter(adapter);

Sure it helps.当然有帮助。

Define a customer spinner_layout.xml with TextView as root view.使用 TextView 作为根视图定义客户 spinner_layout.xml。 When setting the adapter layout, use the following code:设置适配器布局时,使用以下代码:

ArrayAdapter<String> adapter1 = new ArrayAdapter<>(getActivity(), R.layout.layout_spinner, days);

OR或者

adapter1.setDropDownViewResource(R.layout.layout_spinner);

You don't have to use setDropDownViewResource(), you can simply provide your own theme, and override the style.您不必使用 setDropDownViewResource(),您可以简单地提供您自己的主题,并覆盖样式。 See my answer here: Android Spinner - How to make dropdown view transparent?在此处查看我的答案: Android Spinner - 如何使下拉视图透明?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM