我有一个微调项绑定(bind)到一个数组适配器,它随时可能有 0 个或更多项。我希望微调器下拉列表一次只显示三个项目,其余项目可滚动。 我已尝试将微调器包装在具有固定宽度的布局中,但微调器下拉列表仍然占据整个屏幕(如果数组适配器中有那么多项目)来显示列表。
最佳答案
我正在查看 Spinner
源代码,似乎您不能使用微调器来做到这一点。
Spinner
有自己的私有(private)接口(interface),称为 SpinnerPopup
,它定义了如何显示下拉项。目前这是基于 spinnerMode
允许下拉列表或对话框列表。
这两个选项也在 Spinner
类中作为私有(private)类实现:DialogPopup
和 DropdownPopup
。由于您无法访问它们,在我看来您此时唯一的选择是:
- 根据其他小部件(例如 this example)实现您自己的自定义微调器.
- Copy the code来自
Spinner
类,它看起来非常独立,并用它实现您的微调器版本,修改其中的任何内容。
很抱歉,我无法提供更多帮助。
祝你好运!
编辑:
如果您选择选项 2,我认为您需要做的就是添加实现 SpinnerPopup
接口(interface)的模式。然后在构造函数 Spinner(Context context, AttributeSet attrs, int defStyle, int mode)
中添加另一个 case
到 switch
检查模式实例化您自己的弹出窗口。看起来并不难。
关于Android限制微调器下拉列表中显示的项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20238513/