gpt4 book ai didi

android - 在 Dismissible Widget 上禁用关闭方向

转载 作者:IT老高 更新时间:2023-10-28 12:41:33 25 4
gpt4 key购买 nike

我正在编写一个应用程序来保存您的购物 list 。这些项目应该可以关闭以编辑内容或删除项目。如果要编辑的文本字段中已经有其他内容,则应禁用特定方向的滑动。现在我的 Dismissible 看起来像这样。

    Dismissible(
background: Container(
alignment: Alignment.centerLeft,
padding: EdgeInsets.only(left: 20.0),
color: Colors.redAccent,
child: Icon(Icons.delete, color: Colors.white),
),
secondaryBackground: Container(
alignment: Alignment.centerRight,
padding: EdgeInsets.only(right: 20.0),
color: Colors.orangeAccent,
child: Icon(Icons.edit, color: Colors.white),
),
child: Text("This is my dismissible widget"),
onDismissed: (direction){
if(direction == DismissDirection.startToEnd){
Scaffold.of(context).showSnackBar(SnackBar(content: Text("Swipe to right")));
} else if(direction == DismissDirection.endToStart){
Scaffold.of(context).showSnackBar(SnackBar(content: Text("Swipe to right")));
}
},
)

解决方案:

添加这样的解雇指示

    Dismissible(
background: Container(
alignment: Alignment.centerLeft,
padding: EdgeInsets.only(left: 20.0),
color: Colors.redAccent,
child: Icon(Icons.delete, color: Colors.white),
),
secondaryBackground: Container(
alignment: Alignment.centerRight,
padding: EdgeInsets.only(right: 20.0),
color: Colors.orangeAccent,
child: Icon(Icons.edit, color: Colors.white),
),
child: Text("This is my dismissible widget"),
/*New*/
direction: (textController.text.isEmpty
? DismissDirection.horizontal
: DismissDirection.startToEnd
),
/*New*/
onDismissed: (direction){
if(direction == DismissDirection.startToEnd){
Scaffold.of(context).showSnackBar(SnackBar(content: Text("Swipe to right")));
} else if(direction == DismissDirection.endToStart){
Scaffold.of(context).showSnackBar(SnackBar(content: Text("Swipe to right")));
}
},
)

最佳答案

要实现这一点,您需要声明一个局部变量来操作 dismiss direction并根据您的条件设置其值:

// Set required dismiss direction
DismissDirection dismissDirection;
if(OneConditionSatisfies && AnotherConditionSatisfies) {
dismissDirection = DismissDirection.horizontal; // two side dismission
} else if(OneConditionSatisfies) {
dismissDirection = DismissDirection.startToEnd; // only this one
} else if(AnotherConditionSatisfies) {
dismissDirection = DismissDirection.endToStart; // only this one
}

// Return widget from `build` function
return Dismissible(
...
direction: dismissDirection,
...
);

关于android - 在 Dismissible Widget 上禁用关闭方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52478469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com