Android限制微调器下拉列表中显示的项目数

thu*_*ird 10 android android-arrayadapter android-spinner

我有一个spinner项绑定到一个数组适配器,任何时候可能有0或更多项.我希望微调器下拉列表一次只显示三个项目,其余项目可滚动.我已经尝试在具有固定宽度的布局中包装微调器但是微调器下拉列表仍然占据整个屏幕(如果阵列适配器中有很多项)以显示列表.

Ric*_*rdo 5

我正在查看Spinner源代码,看起来你不能用微调器做到这一点.

Spinner有自己的私有接口SpinnerPopup,用于定义如何显示下拉项.这目前基于spinnerMode允许下拉列表或对话框列表.

这两个选项也在Spinner类中作为私有类实现:DialogPopupDropdownPopup.由于您无法访问它们,在我看来,您目前唯一的选择是:

  1. 基于其他小部件(例如本示例)实现您自己的自定义微调器.
  2. Spinner类中复制代码看起来非常独立,并用它实现你的旋转器版本,修改你喜欢的任何内容.

对不起,我无法提供更多帮助.

祝好运!

编辑:

如果您选择选项2,我认为您需要做的就是添加实现SpinnerPopup界面的模式.然后在构造函数中Spinner(Context context, AttributeSet attrs, int defStyle, int mode)添加另一个caseswitch检查模式以实例化您自己的弹出窗口.似乎并不难.