java-XML默认条目的Android Spinner项目布局
作者:互联网
我有两个微调器.其中之一在运行时填充.
groupSpinner.setAdapter(new ArrayAdapter<>(this,
android.R.layout.simple_spinner_item, groupNames));
另一个是使用String数组预先填充到XML布局中的.
<Spinner ...
android:entries="@array/my_items_here" />
两个微调器看起来都不错.但是,当显示其项目时,子菜单布局在下拉菜单和对话框模式下均不匹配.
我必须缺少一些非常简单的东西,但是如何设置它们以使用相同的布局(希望是android.R.layout.simple_spinner_item),而无需创建自己的自定义布局,也不会在运行时加载XML String数组?
这似乎是一件基本的事情,但是我找不到答案,并且已经搜索了很多东西.
请参见下面的屏幕截图:
*请原谅第二张图片中希腊字母的使用.我已经检查并确认该问题与希腊字符的使用无关.
解决方法:
试试这个((ArrayAdapter)preFilledSpinner.getAdapter()).setDropDownViewResource(android.R.layout.simple_spinner_item);
要知道它是如何工作的,只需检查AppCompatSpinner的代码,下面是AppCompatSpinner的默认代码,以弄清传递条目时它是如何工作的.
final CharSequence[] entries = a.getTextArray(R.styleable.Spinner_android_entries);
if (entries != null) {
final ArrayAdapter<CharSequence> adapter = new ArrayAdapter<>(context,android.R.layout.simple_spinner_item, entries);
adapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
setAdapter(adapter);
}
当我们通过XML传递条目时,它们将创建一个ArrayAdapter并应用代码adapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);您可以看到,默认情况下设置了R.layout.support_simple_spinner_dropdown_item,该参数应适用于参数,但不幸的是它们已将其修复
标签:android-layout,android-xml,android-spinner,java,android 来源: https://codeday.me/bug/20191026/1935808.html