Được rồi, tôi đang xây dựng một cái gì đó với Kivy (1.11.1), tóm lại là tôi có một ScrollView cuộn theo chiều dọc với một số ScrollView khác bên trong, nhưng chúng chỉ cuộn theo chiều ngang, vấn đề là bất cứ khi nào tôi cuộn ScrollView bên ngoài xuống và vị trí chuột thay đổi vào ScrollView ngang bên trong, ScrollView bên ngoài dừng cuộn xuống, có vẻ như khi vị trí chuột va chạm với ScrollView ngang thì hành vi cuộn sẽ ngừng được gửi đến ScrollView bên ngoài (dọc) nên nó dừng cuộn xuống. Những gì tôi muốn là một cái gì đó giống như một trang Netflix với một vài ScrollView nằm ngang (Danh sách của tôi, Bộ phim, Phim kinh dị, v.v.) mà bạn có thể cuộn để xem thêm tùy chọn, nhưng tất cả chúng đều nằm trong ScrollView bên ngoài cuộn theo chiều dọc. Trong Netflix, khi bạn cuộn xuống, ngay cả khi vị trí chuột của bạn vào một trong các ScrollView nằm ngang, nó sẽ tiếp tục cuộn xuống ScrollView bên ngoài.
Tôi đã thử đặt ScrollView do_scroll_y ngang thành Sai nhưng sự cố vẫn tiếp diễn. bên cạnh đó. Cuộn lên hoạt động tuyệt vời
từ ứng dụng nhập kivy.app
từ kivy.lang.builder nhập Builder
từ kivy.uix.boxlayout nhập BoxLayout
Builder.load_string(
'''
<ứng dụng="" cuộn="">:
Chế độ xem cuộn:
thanh_width: 10
Scroll_type: ['thanh', 'nội dung']
Bố cục hộp:
id: nội dung
định hướng: 'dọc'
size_hint: 1, Không có
chiều cao: self.minimum_height
phần đệm: 22, 0, 22, 50
khoảng cách: 50
vải:
Màu sắc:
rgba: .15, .15, .15, .9
Hình chữ nhật:
kích thước: self.size
tư thế: self.pos
Cái nút:
size_hint: Không có, Không có
width: 100
chiều cao: 100
on_press: in('ép')
# "Vùng chứa ScrollViews"
Phong tục
Phong tục
Phong tục
Phong tục
:
định hướng: 'dọc'
size_hint: 1, Không có
chiều cao: self.minimum_height
Nhãn:
size_hint: Không có, Không có
kích thước: self.texture_size
id: nhãn
cỡ chữ: 20
Chế độ xem cuộn:
size_hint: 1, Không có
chiều cao: 150
do_scroll: Đúng, Sai
on_scroll_start: print('scrolling. nhưng tại sao?')
GridLayout:
id: lưới
size_hint: Không có, Không có
kích thước: self.minimum_width, 150
khoảng cách: 5
col: 3
Cái nút:
size_hint: Không có, Không có
kích thước: 400, 150
Cái nút:
size_hint: Không có, Không có
kích thước: 400, 150
Cái nút:
size_hint: Không có, Không có
kích thước: 400, 150
''' )
classScrollApp(BoxLayout):
vượt qua
Kiểm tra lớp (Ứng dụng):
xây dựng chắc chắn (tự):
returnScrollApp()
Kiểm tra().run()
ứng>
Tôi không thể khẳng định đã hiểu đầy đủ tình hình, nhưng có vẻ như theo chiều dọc Chế độ xem cuộn
nằm trên một chiều dọc khác Chế độ xem cuộn
là hợp lệ. Vì vậy giải pháp là làm Phong tục
trong lớp Chế độ xem cuộn
Cho phép cuộn dọc (cũng như cuộn ngang). Để làm điều này, hãy thay đổi Phong tục
Bên trong Chế độ xem cuộn
của kv
Thay đổi thành:
Chế độ xem cuộn:
size_hint: 1, Không có
chiều cao: 150
do_scroll: True, True # cũng cho phép cuộn dọc
on_scroll_start: print('scrolling. nhưng tại sao?')
GridLayout:
id: lưới
size_hint: Không, chiều cao 1,01 # phải lớn hơn chiều cao ScrollView một chút
chiều rộng: self.minimum_width
Để thực hiện thao tác cuộn dọc trên đó,GridLayout
Chiều cao phải lớn hơnChế độ xem cuộn
do đó chiều cao1,01
Lời khuyên về kích thước.
Tôi là một lập trình viên xuất sắc, rất giỏi!