flutter 打开后如何更换容器?

w1e3prcc  于 2023-03-09  发布在  Flutter
关注(0)|答案(2)|浏览(116)

如何将容器从this更改为
this
我试着加上车削条件但它说
错误:不能将“Row”类型的值赋给“bool”类型的变量。
请告诉我该怎么办。

cyej8jka

cyej8jka1#

基于这个错误,我假设你试图在build方法的某个地方得到错误的if语句,我建议你使用一个基于onTap的函数返回部件。

Widget _dynamicAddButton() {
     if(clickHappened) 
{ return >round widget<} else {return >longWidget<}
    }

您可以将此函数直接放在构建中,因为它以任何方式返回小部件,以便正确构建UI。
clickHappened是screen小工具中的某个全局bool。

ctehm74n

ctehm74n2#

"我在努力解决你的问题"

代码示例如下:

bool isContainer=true;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
     body: Center(
       child: InkWell(
         onTap: (){
           setState(() {
             isContainer=false;
           });
           print("hello tapped");
         },
         child: Container(

           height: 40,
           width: 70,
          decoration: BoxDecoration(
            color: Colors.purple,
           borderRadius: BorderRadius.all(Radius.circular(20)),
         ),

           child: isContainer?Row(
             mainAxisAlignment: MainAxisAlignment.center,
             children: [

               Icon(Icons.contact_mail_outlined),
               SizedBox(
                 width: 10,
               ),
               Text("Add")
             ],
           ):Container(
             color: Colors.purple,
             child:Icon(Icons.contact_page_outlined),
           ),
         ),
       ),
     ),
    );
  }

相关问题