自從Flutter 2.5發布后,觸摸手勢就不再起作用了(例如ScrollViwes或Tabs)。我沒有在Android/IOS上進行測驗,因為我當時沒有為這些平臺進行開發,但我認為它在PC平臺上是默認禁用的,但我找不到任何關于這個問題的資源,也不知道如何打開它!(我在兩個獨立的作業站上遇到了同樣的問題,而且有很多人都在使用。(我在兩個獨立的作業站和多個獨立的專案上遇到了同樣的問題,在除錯和發布時都是如此)
編輯例子:void main() {
runApp(
MaterialApp(
首頁。Scaffold(
body: ListView.builder(
itemBuilder: (buildContext, index) => ListTile(
標題。Text("test" index.toString())。
),
),
),
),
);
}
uj5u.com熱心網友回復:
這是Flutter 2.5中的一個突破性變化,但如果你還想要這個行為,有一個Flutter的遷移指南。https://flutter.dev/docs/release/breaking-changes/default-scroll-behavior-drag#migration-guide。
你必須撰寫你自己的ScrollBehavior:
class MyScrollBehavior extends MaterialScrollBehavior {
@override
Set<PointerDeviceKind> get dragDevices => {
PointerDeviceKind.touch,
PointerDeviceKind.mouse。
...
};
}
MaterialApp(
scrollBehavior: MyScrollBehavior(),
...
);
uj5u.com熱心網友回復:
這是我現在的實作:
class MyCustomScrollBehavior extends MaterialScrollBehavior {
const MyCustomScrollBehavior()。
Set<PointerDeviceKind> get dragDevices => {
PointerDeviceKind.mouse。
}.addAll(super.dragDevices)。
在main中:
MaterialApp(
scrollBehavior: const MyCustomScrollBehavior(),
主頁:......。
);
好處是,你不需要擔心其他PointerDeviceKind,因為超級getter也是其他的!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/329159.html
標籤:
