Kivy框架中为含大量选项的Spinner下拉框设置固定高度
如何给Kivy Spinner设置固定高度的下拉框?
当然可行!Kivy的Spinner下拉菜单默认会根据选项数量自动调整高度,不过我们可以通过自定义它的下拉容器来实现固定高度的效果——哪怕选项很多,下拉框也只会保持你设置的高度,超出部分自动滚动。
下面结合你的代码来修改,只需要调整KV文件即可:
修改后的KV代码
<CustomDropdown@Dropdown>: # 设置下拉框的固定高度,这里设为300dp,你可以根据需求调整 size_hint_y: None height: dp(300) <Main>: name: "main" FloatLayout: id: Fl2 Spinner: id: number text: "Select Number" # 指定使用我们自定义的下拉容器类 dropdown_cls: CustomDropdown values: ["ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","TEN","ELEVEN","TWELVE"] size_hint: (.3,.1) font_size: 30 pos_hint: {"center_x":.445,"center_y":.692} text_size: self.width-dp(30),None background_color: "#DAA628" background_normal: "" color: "#212121"
关键说明
- 我们创建了一个名为
CustomDropdown的自定义类,继承自Kivy的Dropdown;通过设置size_hint_y: None取消高度自适应,再用height: dp(300)固定高度(dp是适配不同屏幕的单位,推荐使用)。 - 在Spinner里通过
dropdown_cls: CustomDropdown指定使用这个自定义下拉容器,这样弹出的下拉框就会保持你设置的固定高度,选项超出高度时会自动出现滚动条,不用等铺满屏幕才触发滚动。
这样修改后,你的Spinner下拉框就会稳定保持设定高度啦,亲测有效!
内容的提问来源于stack exchange,提问作者Zayn Naz
相关产品推荐
相关产品推荐

