2010-06-13 46 views
17

我有一个使用ArrayAdapter填充字符串列表的Android微调器,它运行良好,但是因为显示微调器的方式,我遇到了列表项的显示高度问题。如何管理android微调项目的高度?

乍一看,似乎ArrayAdapter可以使用单个布局显示导致我遇到的问题的选项。在微调器中显示当前项目时(当用户没有从列表中选择新项目时),微调器会填充文本,以便微调器具有合理的点击大小。然而,当用户点击它并提出列表来选择一个新项目时,列出的项目是小高度方式。如果我使用项目布局来显示列表项目的高度,那么由于它自己填充了列表项目,所以微调器本身变得过于庞大。

关于如何管理这两个项目显示模式的高度的任何想法,以便它们有效显示高度值而不是微调器高度大于列表项高度?

回答

44

我碰到的这个问题我自己前一段时间,并且事实证明,我需要使用的下拉列表,并显示不同的布局

我有这样的代码:

adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cGroups, 
       new String[] { 
         "name", "_id" 
       }, new int[] { 
        android.R.id.text1 
       }); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
+2

这很完美。谢谢!只需要清楚setDropDownViewResource方法设置用户从项目列表中选择时显示的项目视图。 – rushinge 2010-06-13 23:55:45

13

是的,以上答案是正确的。

我花了很长时间才找到这个,因为它在2.2 Android的sdk示例中是错误的。我很难接受这一点。

下面是从 样品/ Android的12 /微调/ src目录/ COM /安卓/例子/旋转/ SpinnerActivity.java一个片段:

 
     this.mAdapter = ArrayAdapter.createFromResource(this, R.array.Planets, 
       android.R.layout.simple_spinner_dropdown_item); 

,同时它应该有android.R.layout.simple_spinner_item有替代和simple_spinner_dropdown_item只应用于下拉项目。否则,微调箭头将变为拉伸状态,并将下拉选择圆圈画到显示器上。

+0

你的帖子已经帮了我很多,它让我感到困惑。 Pentium10给出的答案仍然在setDropDownViewResource()调用中使用下拉变体,这导致项目的大量填充。只要尝试在此设置中修改主题中的属性 - 祝你好运不一致... – 2012-12-06 21:07:33

+0

Pentium10的回答是正确的,就像我说的,我只是对此感到高兴。我的评论是关于我认为应该提及的样本,因为我最初没有发现它的缺陷,这就是我首先寻找修复的原因。 – 2012-12-11 08:09:43

+0

哦,明白了。感谢您的澄清。再次,您的回答让我走上了正确的轨道,即使我一开始就误解了背景。 – 2012-12-18 13:24:39

相关问题