PageView
がある場合、デフォルトのスクロール動作(スワイプ)を無効にして、代わりにボタンをタップして次のアイテムをスクロールさせる方法?PageView:デフォルトのスクロールを無効にしてタップイベントに置き換えます
2
A
答えて
4
:
PageView(physics:new NeverScrollableScrollPhysics())
を
0
私はこれを次のように理解しようとしました。誰かがより良い解決策を持っている場合は、私たちと共有してください。
はボタンがPageView
の次の項目に移動してください:
あなたPageView
にPageController
を追加し、ユーザーがボタンを押したときの方法animateTo
またはjumpTo
は、目的の項目に移動するには。現在のビューの幅全体がオフセットであるようにして、次のアイテムへの移行が正常に行われるようにしました。
onPressed:() {
c.animateTo(MediaQuery
.of(context)
.size
.width, duration: new Duration(seconds: 1),
curve: Curves.easeIn);
}
行動をスワイプデフォルトを無効にします。私はすべてのユーザーとの対話を無視するIgnorePointer
内の私のPageView
を包むことだった
、私は本当にこのソリューションを好きではない、それはで正常に動作することができますしかし、この例では、他の状況では、現在表示されているページ内の1つのウィジェットとユーザーがやり取りすることが必要な場合があります。
これは私のサンプルコードです:このソリューションで
class FirstPage extends StatefulWidget {
@override
_FirstPageState createState() => new _FirstPageState();
}
class _FirstPageState extends State<FirstPage> {
ScrollController c;
@override
void initState() {
super.initState();
c = new PageController();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
floatingActionButton: new Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
new FloatingActionButton(
child: new Icon(Icons.navigate_before), onPressed:() {
//c.animateTo(MediaQuery.of(context).size.width, duration: new Duration(seconds: 1), curve: Curves.easeIn);
c.jumpTo(0.0);
}),
new Container(width: 15.0,),
new FloatingActionButton(
child: new Icon(Icons.navigate_next), onPressed:() {
c.animateTo(MediaQuery
.of(context)
.size
.width, duration: new Duration(seconds: 1),
curve: Curves.easeIn);
}),
],),
appBar: new AppBar(title: new Text("First Page")),
body: new IgnorePointer(child: new PageView(
controller: c,
children: <Widget>[
new Column (
children: <Widget>[new Container (child: new Text("First Item"))
]),
new Container (child: new Text("Second Item")),
],
),),
);
}
}
任意の提案や修正は歓迎されています。あなたが設定することができますスワイプ無効にするには
関連する問題
- 1. 無効にホットコードに置き換え
- 2. 無効なXMLの置き換え&
- 3. 有効なコードを無効なコードに置き換えるリンカ
- 4. 置き換え中にEditTextを自動で無効にする
- 5. c#プレースホルダをtext.htmlに置き換えて置き換えます。
- 6. ホバーテキストを置き換えて画像に置き換えます
- 7. カスタム・メニューをOracle Forms 11gのデフォルト・メニューに置き換えます。
- 8. デフォルトのsolve()をginvに置き換えます。
- 9. PDFを保存する際に無効な文字を置き換えます。
- 10. htaccessを使用してデフォルトの "index of"ページをカスタムページに置き換えます。
- 11. 水平スクロールで垂直スクロールを置き換えます。vanilla javascript
- 12. デフォルトの置き換えを行うカスタムスクロールバー
- 13. jQueryはスクロールを無効にして有効にします
- 14. "&"を "&"に置き換えてclojure.string/replaceに置き換えます。
- 15. C++ doubleをcharに置き換えてstd :: arrayに置き換えます。
- 16. text2vecの単語を効率的に置き換えます
- 17. ライオンで置換を無効にする
- 18. スクロールを無効にすることはできますが、同じスクロール位置に留まるには
- 19. recyclerviewのスクロールを無効にして有効にする方法
- 20. WCFのデフォルトのJSONシリアル化を置き換えます
- 21. XNAは効果的にManaged Directxを置き換えますか?
- 22. 変数名を再利用して検索を無効にして置き換えるJavaScriptのobfuscator
- 23. パターン 'n' +(子音)を効率的に検索して置き換えます
- 24. デフォルトのSTLアロケータを置き換えます
- 25. Androidデフォルトのwebviewを置き換えます
- 26. ckeditorのデフォルト属性を置き換えます
- 27. Inno Setup - デフォルトのnext/back/cancelボタンを置き換えます。
- 28. Asp.net MVC 2でデフォルトのModelStateエラーメッセージを置き換えるには?
- 29. スウィフトの\\を\に置き換えます
- 30. FolderDialogBox.SelectedPathの\\を\に置き換えます。