我正在通过 Flet 使用 Python 制作 Android 应用程序。我需要显示任务列表,但它并不总是适合屏幕,所以我决定滚动。然而,这不起作用。
main.py代码:
from flet import *
import views
import database as db
def main(page: Page):
page.title = 'NeoTelecom'
page.theme_mode = 'dark'
page.scroll = 'adaptive'
page.vertical_alignment = CrossAxisAlignment.START
page.horizontal_alignment = MainAxisAlignment.CENTER
page.window_width = 400
page.padding = 0
page.spacing = 0
def route_change(e: RouteChangeEvent):
page.views.clear()
if page.route == '/':
#главная страница
elif page.route == '/task':
def go_main(e):
page.go('/main')
def go_comment(e):
data.data['task_id'] = e.control.data
page.go('/task/comment')
def go_navigate(e):
data.data['task_id'] = e.control.data
page.go('/task/navigate')
view_task = views.Task(go_main, go_navigate, go_comment)
#получаю tasks через api...
page.views.append(view_task.view(tasks))
page.on_route_change = route_change
page.go(page.route)
page.update()
app(target=main, assets_dir='assets/')
意见:
class Task:
def __init__(self, go_main, go_navigate, go_comment):
self.go_main = go_main
self.go_navigate = go_navigate
self.go_comment = go_comment
def task(self, task_id, status, cust_name, cust_address, cust_phone, date, _type):
return Column(
[
#код для отображения одного задания
],
scroll='adaptive'
)
def view(self, tasks):
return View(
route='/task',
controls=[
#заголовки
Container(
Column(
tasks,
alignment=MainAxisAlignment.CENTER,
scroll='adaptive',
expand=1
),
padding=padding.only(top=20)
)
]
)
]
)
我尝试将其放入 page.scroll 和 Column.scroll 中:
ScrollMode.ALWAYS;
'always';
ScrollMode.AUTO;
'auto';
ScrollMode.ADAPTIVE;
'adaptive'
这些都没有帮助。通过触摸板滚动不起作用,手指滑动不起作用并且滑块不出现
指定 的高度或最大高度
Column
。最有可能的是,你
Column
走到了屏幕之外。