我有一个spinner项绑定到一个数组适配器,可能随时有0个或更多项。我希望微调器下拉列表一次只显示三个项目,其余项目可滚动。 我尝试在具有固定宽度的布局中包装微调器但是微调器下拉列表仍占用整个屏幕(如果阵列适配器中有许多项目)以显示列表。
答案 0 :(得分:5)
我正在查看Spinner
源代码,看起来你不能用微调器做到这一点。
Spinner
有自己的私有接口SpinnerPopup
,它定义了如何显示下拉项。这当前基于spinnerMode
允许下拉列表或对话列表。
这两个选项也在Spinner
类中作为私有类实现:DialogPopup
和DropdownPopup
。由于您无法访问它们,在我看来,您目前唯一的选择是:
Spinner
类的对不起,我无法提供更多帮助。
祝你好运!编辑:
如果您选择选项2,我认为您需要做的就是添加实施SpinnerPopup
界面的模式。然后在构造函数Spinner(Context context, AttributeSet attrs, int defStyle, int mode)
内添加另一个case
到switch
检查模式以实例化您自己的弹出窗口。似乎并不难。
答案 1 :(得分:3)
这是最终简单的解决方案.. 只需在Spinner标签中复制此行...
android:dropDownHeight="100dp" <!--change 100dp to your requirement-->
你也可以修改宽度......
android:dropDownWidth="100dp" <!--change 100dp to your requirement-->
你知道它在AutoCompleteTextView
上的作用以及至少api 16 ......
答案 2 :(得分:0)
推荐的解决方案并不是很有趣,因为它们会硬编码下拉列表的高度,这是不好的,因为不同手机中的字体大小实际上是不同的,我这样处理它是动态而可靠的:
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
# If lists empty return None
if not l1 and not l2:
more code.....