如何管理android微调器项的高度?

rus*_*nge 17 height android spinner listadapter

我有一个使用ArrayAdapter填充的字符串列表的android微调器,它运行正常,但是由于微调器的显示方式,我遇到列表项的显示高度问题.

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

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

Pen*_*m10 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);
Run Code Online (Sandbox Code Playgroud)

  • 那很完美.谢谢!为了清楚起见,setDropDownViewResource方法设置用户从项目列表中选择时显示的项目视图. (2认同)

Tom*_*ola 13

是的,上面的答案是正确的.

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

这是来自samples/android-12/Spinner/src/com/android/example/spinner/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应该只用于下拉项目.否则,微调器箭头会拉伸,并将下拉选择圆圈绘制到显示器上.