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

标签 android android-arrayadapter android-spinner

我有一个微调项绑定(bind)到一个数组适配器,它随时可能有 0 个或更多项。我希望微调器下拉列表一次只显示三个项目,其余项目可滚动。 我已尝试将微调器包装在具有固定宽度的布局中,但微调器下拉列表仍然占据整个屏幕(如果数组适配器中有那么多项目)来显示列表。

最佳答案

我正在查看 Spinner 源代码,似乎您不能使用微调器来做到这一点。

Spinner 有自己的私有(private)接口(interface),称为 SpinnerPopup,它定义了如何显示下拉项。目前这是基于 spinnerMode允许下拉列表或对话框列表。

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

  1. 根据其他小部件(例如 this example)实现您自己的自定义微调器.
  2. Copy the code来自 Spinner 类,它看起来非常独立,并用它实现您的微调器版本,修改其中的任何内容。

很抱歉,我无法提供更多帮助。

祝你好运!

编辑:

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

关于Android限制微调器下拉列表中显示的项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20238513/

相关文章:

java - Listview 中的内容是不可见的

android - 使用自定义数组适配器从 android ListView 中删除选中的多个项目的复选框

android - 单击对话框中的按钮后是否可以通知数组适配器

java - 如何设置 AppCompatSpinner 的文本?请查看详情

java - Android - 如何在一个 Activity 中禁用多个微调器的特定项目

android - 微调器默认文本的设置?

android - protected 图像文件夹 Android

android - Firebase 中单个主题订阅的用户最大限制是多少?

java - 是否可以将图像从 Android 手机传递到 Java Servlet 进行处理并取回修改后的图像

android - 如何为此布局添加 ScrollView?