Как удалить внутреннюю границу виджета в стеке во Flutter?

#flutter #flutter-layout

#flutter #flutter-макет

Вопрос:

Цель

Пример

Я не хочу получать контурную границу двух контейнеров в стеке, один из которых расположен так, как показано на рисунке. Моя цель — удалить «красную» часть.

Как я могу выполнить это в Flutter?

 Widget build(BuildContext context) {
    return Stack(
      overflow: Overflow.visible,
      children: [
        Container(
          width: 200,
          height: 200,
          decoration: BoxDecoration(
            border: Border.all(),
          ),
          child: const Center(child: Text("BLABLABLA")),
        ),
        Positioned(
          top: -10,
          left: 10,
          child: Container(
            width: 150,
            height: 25,
            decoration: BoxDecoration(
              border: Border.all(),
            ),
            child: const Center(child: Text("BLABLABL2")),
          ),
        ),
      ],
    );
  }
  

Комментарии:

1. Можете ли вы предоставить свой код

2. Можете ли вы опубликовать код?

3. Вам нужен вывод такой же, как на первом изображении, верно?

4. да, без красной границы.

5. @Nauzet Ты можешь опубликовать свой код?

Ответ №1:

Если я правильно понял ваш вопрос, то это сработает для вас!

 Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Stack Example'),
      ),
      body: Center(
        child: Stack(
          overflow: Overflow.visible,
          children: [
            Container(
              width: 200,
              height: 200,
              decoration: BoxDecoration(
                color: Colors.grey.withOpacity(0.2),
                border: Border.all(),
              ),
              child: const Center(child: Text("BLABLABLA")),
            ),
            Positioned(
              top: -10,
              left: 10,
              child: Container(
                width: 150,
                height: 25,
                decoration: BoxDecoration(
                  color: Colors.white,
                ),
                child: Stack(children: [
                  Container(
                      width: double.infinity,
                      decoration: BoxDecoration(
                        border: Border(
                          top: BorderSide(color: Colors.black),
                          left: BorderSide(color: Colors.black),
                          right: BorderSide(color: Colors.black),
                        ),
                      ),
                      height: 11),
                  Center(
                    child: Text("BLABLABL2"),
                  ),
                ],
               ),
              ),
            ),
          ],
        ),
      ),
    );
  }
  

Результат будет выглядеть,

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