Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
505 views
in Technique[技术] by (71.8m points)

dart - How to change the state of a variable from another child Widget in Flutter

I have this Align Widget where I show a list item.

class _BackgroundState extends State<Background> {
  final List<Widget> list = [
    Text("1"),
    Text("2"),
    Text("3"),
  ];

  int i = 0;

 @override
 Widget build(BuildContext context){
  return Stack(
       children:[
          Align(alignment: Alignment.center, child: list[i],
          BottomMenu()
     ]);
  }

}

BottomMenu is StatelessWidget

contains multiple CustomBottomIcon Widgets that return a GestureDetector.

class _CustomBottomIconState extends State<CustomBottomIcon> {
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        //
        setState(() {});
      },
      child: Container(
        decoration: BoxDecoration(
          color: Colors.indigo,
          borderRadius: BorderRadius.circular(100),
        ),
        height: MediaQuery.of(context).size.height / 20,
        width: MediaQuery.of(context).size.height / 20,
        child: Icon(
          widget.icon,
          color: Colors.white,
        ),
      ),
    );
  }
}

Note that the index i is not visible in the child widget. How can I change the state of i ?

Is it enough to rebuild the list item?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...