Итак, я новичок в трепетании, и я пытаюсь разместить контейнер, содержащий текст, точно в центре внизу, и я также хочу, чтобы Colors.black.withOpacity покрыл всю ширину за текстом

body: ListView(
       children: <Widget>
       [
         Container(
           padding: EdgeInsets.all(5.0),
           child: Stack(

             children: <Widget>
                [
           Container
           (
             padding: EdgeInsets.fromLTRB(0,0,0,0),

             child: new Image
                (
                  image: new AssetImage('images/99.jpg'), 
                  fit: BoxFit.cover
                )
                ),

            Positioned(
              bottom: 0,
              right: 125,
              child: Container
              (
                padding: EdgeInsets.all(7.0),

                color: Colors.black.withOpacity(0.3),


                child: Text("The text", style: TextStyle(color: Colors.white, fontSize: 25.0), textAlign: TextAlign.center,), 


                ),
            )
            ,      

                ],
                ),
         ), 

       ],
      ),

введите описание изображения здесь

0
Moun dev 12 Июн 2020 в 22:50

1 ответ

Лучший ответ

Во-первых, вам нужно выполнить медиа-запрос и сохранить размер. Вы можете сделать это прямо в начале вашего метода build ().

Size size = MediaQuery.of(context).size;

Затем замените свой позиционированный виджет этим.

    Positioned(
      bottom: 0,
      width: size.width,
      child: Container(
        padding: EdgeInsets.all(7.0),
        color: Colors.black.withOpacity(0.3),
        child: Text(
          "The text",
          style: TextStyle(color: Colors.white, fontSize: 25.0),
          textAlign: TextAlign.center,
        ),
      ),
    ),

Это должно сработать.

0
Aliyu Yisa 12 Июн 2020 в 23:36