自定义的Spinner项未出现在Spinner中

3
我遇到了一个问题:当我使用非常规的Spinner项目类型时,Spinner会在其他位置显示下拉列表而不是在Spinner上。
(注意:这个描述大部分与https://stackoverflow.com/questions/4188443/android-doesnt-honor-selection-change-with-custom-spinner-items相同,但我在这里报告的问题略有不同。我将它们分开,以便清楚地指导不同的回复)
我的目标是为Spinner中的每个项目提供稍微花哨一些的显示方式,因此我首先创建了一个包含多个项目的布局,其中一个项目是目标TextView(在这种情况下是lbl2)。

接下来我尝试设置Spinner(我的最终目标是通过编程方式填充Spinner,因此我不使用资源来设置它),使用以下代码:

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(
            this, R.layout.spinner_fancy, R.id.lbl2);
    adapter.add("Item #1");
    adapter.add("Item #2");
    adapter.add("Item #3");
    spinner.setAdapter(adapter);

当我运行程序时,它看起来(大多数)很好 - Spinner实际上正在呈现每个项目的三个textviews的多彩垂直布局,并且它正确地将Item#1,Item#2和Item#3替换为lbl2。 我甚至可以单击Spinner并弹出选择列表。
问题是项目没有显示在Spinner上方。 相反,它们只是在活动上漂浮着,稍微向下移动一点。 希望这张图片能帮助澄清:Floating Spinner Elements http://www.freeimagehosting.net/uploads/bf9f584156.png 编辑:感谢投票支持 - 我已经修复了图像,使其成为内联!
1个回答

1

Android的Spinner以这种方式工作... 项目列表以“对话框模式”显示。

您可以在XML布局中(在Spinner部分)使用此功能向列表添加标题:

android:prompt="Select a fancy item..."

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接