【发布时间】:2017-01-15 20:36:54
【问题描述】:
我有两个 Spinner。其中之一是在运行时填充的。
groupSpinner.setAdapter(new ArrayAdapter<>(this,
android.R.layout.simple_spinner_item, groupNames));
另一个是使用字符串数组在 XML 布局中预填充的。
<Spinner ...
android:entries="@array/my_items_here" />
两个 Spinner 看起来都很好。但是,当它们的项目显示时,子布局不匹配,在dropdown 和dialog 模式下。
我一定遗漏了一些非常简单的东西,但是 我怎样才能将它们设置为使用相同的布局(希望 android.R.layout.simple_spinner_item),而不创建我自己的自定义布局,或者在运行时加载 XML 字符串数组?
这似乎是一件基本的事情,但我找不到答案,我已经搜索了很多。
请看下面的截图:
*请原谅在第二张图片中使用了希腊字符。我已经检查并确认问题与使用希腊字符无关。
【问题讨论】:
-
两个微调器布局看起来都一样,除了宽度。
-
对话框中的项目看起来不一样。我从来没有在任何地方将第二个设置为粗体。这只是显示它们的默认方式。但是,如您所见,第一个对话框也使用默认方式,效果要好得多,而且不那么粗糙。所以,我正在寻找一种方法来设置第二个对话框的项目布局,而不是在运行时加载它们。
-
你能发布两个微调器的代码吗?
-
您是否尝试过使用
adapter.setDropDownViewResource()?另外,两者的主题/风格相同吗? -
试试这个
((ArrayAdapter)preFilledSpinner.getAdapter()).setDropDownViewResource(android.R.layout.simple_spinner_item);
标签: java android android-layout android-spinner android-xml