【发布时间】:2021-08-14 11:34:30
【问题描述】:
我正在从模型中检索切换按钮的布尔值。该按钮不在屏幕中的真假之间切换。我是新手,请帮我解决这个问题。
这是我为切换按钮提供的代码。
Padding(
padding: const EdgeInsets.symmetric(horizontal: 5.0),
child: AnimatedContainer(duration: Duration(milliseconds: 1000),
height: 35.0,
width: 70.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20.0),
color: TaskData().tasks[0].isOn ? Color(0xFF1F8BD0): Colors.grey[100]!.withOpacity(0.2)
),
child: Stack(
children: <Widget>[
AnimatedPositioned(
duration: Duration(milliseconds: 400),
curve: Curves.ease,
left: TaskData().tasks[0].isOn ? 30.0 : 0.0,
right: TaskData().tasks[0].isOn ? 0.0 : 30.0,
child: InkWell(
onTap: (){
setState(() {
TaskData().tasks[0].isOn = !TaskData().tasks[0].isOn;
});
},
child: AnimatedSwitcher(
duration: Duration(milliseconds: 10),
transitionBuilder: (Widget child, Animation<double> animation) {
return ScaleTransition(child: child, scale: animation);
},
child: TaskData().tasks[0].isOn? Icon(Icons.circle, color: Colors.white, size: 35.0,
key: UniqueKey(),
) : Icon(Icons.circle, color: Colors.white, size: 35.0,
key: UniqueKey(),
),
),
),
),
],
),
),
)
此代码来自模型:
class T{
final String tsk;
bool isOn;
T({required this.tsk, required this.isOn});
}
class TaskData {
List tasks = [
T(tsk: "complete the work", isOn: false),
T(tsk: "do the work", isOn: false),
T(tsk: "do the pending works", isOn: false)
]
}
【问题讨论】:
标签: android flutter android-studio dart flutter-layout