Kivy AnchorLayout が効かない時はサイズを指定すると良い
今回も Kivy ネタです。
下記のようなコードで(コメントアウトは除き) で右寄せが効かずちょいハマりました。
Stack Overflow にスレがあり、CSS のブロックエレメント/インラインエレメント のような感じでMDLabel の幅が max に設定されてしまうようです。
コメントアウトを解除すると無事に右寄せが機能しました。
Label を MDLabel にすると別のスタイルが有効になるようで文字が見切れてしまいます。その場合は size を texture_size から変更する必要があるようです。ここは追求していません。
from kivy.lang import Builder
from kivymd.app import MDApp
KV = '''
MDScreen:
MDBoxLayout:
orientation: 'vertical'
AnchorLayout:
# size_hint_x: 1
anchor_x: 'right'
anchor_y: 'center'
Label:
text: 'menu-'
# この2行を追加すれば OK
# size_hint: (None, None)
# size: self.texture_size
max_lines: 1
padding: (dp(16), dp(0))
'''
class MainApp(MDApp):
def build(self):
self.theme_cls.theme_style = 'Dark' # or 'Light'
return Builder.load_string(KV)
if __name__ == '__main__':
MainApp().run()