chichi
chichi

Reputation: 3292

Flutter: Expanded IconButton still shows under the Container

       AnimatedContainer(
               ...
                child: Container(
                  child: Column(
                    children: [
                      Row(
                        children: [
                          Container(
                            width:60,
                            height:50,
                            color: Colors.black,
                          ),
                        ],
                      ),
                      Expanded(
                        child: GestureDetector(
                            onTap: () {
                              print('what');
                            },
                            child: Container(
                              height: 50,
                              child: Column(
                                children: [
                                  Expanded(
                                    child: Text('asdf'),
                                  ),
                                  Expanded(
                                    child: IconButton(
                                      icon: Icon(Icons.ac_unit),
                                      onPressed: () {},
                                    ),

I have this AnimatedContainer widget here. My Text() widget and RaisedButton widget are hidden inside the box. They appear as the AnimatedContainer expand. However, my IconButton doesn't.

enter image description here

Also, Icon widget also stays like IconButton widget. How can I make it appear when the AnimatedContainer is stretched like the Text widget?

enter image description here

Upvotes: 1

Views: 381

Answers (1)

shorol
shorol

Reputation: 1000

I've modified your code, hope this is what u want.

class _RowStructureState extends State<RowStructure> {
  bool pressed = false;
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        setState(() {
          pressed = !pressed;
        });
        print(pressed);
      },
      child: Column(children: <Widget>[
        AnimatedContainer(
          height: pressed ? 120 : 50,
          color: Colors.green,
          duration: Duration(seconds: 1),
          child: Stack(
            children: [
              Container(
                height: 50,
                width: 50,
                color: Colors.black,
              ),
              Positioned(
                bottom:0,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: [
                    Text('asd'),
                    IconButton(
                      padding: EdgeInsets.all(0),
                      icon: Icon(Icons.ac_unit,),
                      onPressed: pressed?(){}:null,
                    ),
                  ],
                ),
              )

            ],
          ),
        )
      ]),
    );
  }
}

Upvotes: 2

Related Questions