Kivy:self.minimum_height 不适用于 ScrollView 内的小部件
Kivy: self.minimum_height not working for widget inside ScrollView
我最近开始接触 Kivy,现在我正在尝试为我和我的朋友创建一个 D&D 应用程序 sheet。我想在一个选项卡中包含所有重要的统计信息,您可以在其中向下滚动,这样文本字体就不必那么小,但我无法使用 self.minimum_height
属性将包含其他元素的 GridLayout。
我是运行kivy版本1.10.0
如果我手动设置高度,ScrollView 就可以正常工作。
这是我的 .kv 文件
<TabbedPanel>:
do_default_tab: False
tab_pos: 'bottom_mid'
tab_width: self.width / 4
TabbedPanelItem:
text: "Character"
ScrollView:
size_hint: (1, None)
height: root.height
GridLayout:
cols: 1
size_hint_y: None
height: self.minimum_height
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
TabbedPanelItem:
text: "Weap's & Mods"
TabbedPanelItem:
text: "Vehicle"
TabbedPanelItem:
text: "Vehicle Upgr"
您还需要为每个包含的小部件设置明确的高度,以便 GridLayout 可以将它们加在一起以计算其最小高度。例如,在您的示例中,您可以将以下行添加到每个按钮:
size_hint_y: None
height: dp(30)
还不能发表评论,所以必须单独回答:
你可以:
<My_button>(Button):
size_hint_y: None
height: dp(30)
并在您的网格布局中使用它。这样可以避免为每个条目重复它。
我最近开始接触 Kivy,现在我正在尝试为我和我的朋友创建一个 D&D 应用程序 sheet。我想在一个选项卡中包含所有重要的统计信息,您可以在其中向下滚动,这样文本字体就不必那么小,但我无法使用 self.minimum_height
属性将包含其他元素的 GridLayout。
我是运行kivy版本1.10.0 如果我手动设置高度,ScrollView 就可以正常工作。
这是我的 .kv 文件
<TabbedPanel>:
do_default_tab: False
tab_pos: 'bottom_mid'
tab_width: self.width / 4
TabbedPanelItem:
text: "Character"
ScrollView:
size_hint: (1, None)
height: root.height
GridLayout:
cols: 1
size_hint_y: None
height: self.minimum_height
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
Button:
text: "Hello"
TabbedPanelItem:
text: "Weap's & Mods"
TabbedPanelItem:
text: "Vehicle"
TabbedPanelItem:
text: "Vehicle Upgr"
您还需要为每个包含的小部件设置明确的高度,以便 GridLayout 可以将它们加在一起以计算其最小高度。例如,在您的示例中,您可以将以下行添加到每个按钮:
size_hint_y: None
height: dp(30)
还不能发表评论,所以必须单独回答: 你可以:
<My_button>(Button):
size_hint_y: None
height: dp(30)
并在您的网格布局中使用它。这样可以避免为每个条目重复它。