Flutter : 调用另一个widget的功能到其他页面。

问题描述 投票:-1回答:1

我想当我点击按钮时,页面被关闭,但两个类都是不同的,其中一个是主页面,另一个是设置页面,我把关闭按钮放在设置页面上,像这样。

class Settings extends StatelessWidget {

  @override
  Widget build(BuildContext context) 
 return Positioned(
          left: MediaQuery.of(context).size.width*0.25,
          top: MediaQuery.of(context).size.height*0.001,
          height: MediaQuery.of(context).size.height*0.10,
          child: icon(context),
),
}
}



 **icon function:** 
Widget icon(BuildContext context) {
  return IconButton(
               icon: Icon(Icons.close),
               color: Colors.white,
               iconSize: MediaQuery.of(context).size.height*0.041,
               onPressed: (){},

              );
}

和主页面。

 class MainPage extends StatefulWidget{
final double settingsMargin=1;
.
.
.
.


        settingsMargin < 1
            ? InkWell(  
                onTap: () {
                  setState(() {
                    settingsMargin = 1; 


                  });
                },
              child:Container( ), // I want to set the icon function but i dont know 
            )


            : Container(),
function flutter dart widget flutter-animation
1个回答
0
投票

你可以把函数传给其他页面的参数,然后你就可以直接调用该函数了,希望对你有帮助。

class Settings extends StatelessWidget {
  final Function callback;
  Settings(this.callback);

  @override
  Widget build(BuildContext context) 
 return Positioned(
          left: MediaQuery.of(context).size.width*0.25,
          top: MediaQuery.of(context).size.height*0.001,
          height: MediaQuery.of(context).size.height*0.10,
          child: icon(context),
),
}
}



 **icon function:** 
Widget icon(BuildContext context) {
  return IconButton(
               icon: Icon(Icons.close),
               color: Colors.white,
               iconSize: MediaQuery.of(context).size.height*0.041,
               onPressed: (){
                  callback();
               },

              );
}
© www.soinside.com 2019 - 2024. All rights reserved.