В Flutter как я могу удалить часть виджета. Я хочу удалить нижнюю половину виджета контейнера

#flutter #flutter-layout

#flutter #flutter-layout

Вопрос:

Итак, я пытаюсь отобразить что-то вроде этого :

изображение, которое я пытаюсь отобразить

До сих пор используя этот код :

 Stack(
            fit: StackFit.loose,
            children: <Widget>[
              Row(
                crossAxisAlignment:
                CrossAxisAlignment.center,
                mainAxisAlignment:
                MainAxisAlignment.center,
                children: <Widget>[
                  Container(
                      width: 110,
                      height: 110,
                      decoration: BoxDecoration(
                        shape: BoxShape.circle,
                        image: DecorationImage(
                          image: AssetImage('assets/profile.png'),
                          fit: BoxFit.cover,
                        ),
                      )),
                ],
              ),
              Padding(
                  padding: EdgeInsets.only(
                      top: 70.0, ),
                  child: Row(
                    mainAxisAlignment:
                    MainAxisAlignment.center,
                    children: <Widget>[
                      ClipRect(

                        child: Container(
                          color:Color.fromRGBO(0, 0, 0, 0.5),
                          width: 110,
                          height: 60,
                          child: Icon(
                            Icons.camera_alt,
                            color: Colors.grey[800],
                          ),
                        ),
                      ),
                    ],
                  )),
            ])
 

У меня есть это изображение :
Изображение, которое я получил

Теперь мой поиск в Google привел меня к мысли, что clipRect может быть решением здесь, но я не могу найти точное решение, поэтому я думаю, что все, что мне нужно сделать, это вырезать часть прямоугольного контейнера, которая выходит за пределы круглого аватара, но я не уверен, как это сделать.

Ответ №1:

Попробуйте этот макет:

 ClipOval
  Stack: alignment: AlignmentDirectional.bottomCenter,
    Container: width: 110, height: 110
    Positioned: bottom: 0, child: Container(width: 110, height: 40)
    Icon
 

[ОБНОВЛЕНО]

используйте ClipRRect с radius вместо ClipOval

или

используйте flutter_custom_clippers, OvalBottomBorderClipper() для нижней части контейнера.

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

1. Он не работает, его рендеринг точно такой же, как я рендерил его раньше, он не отрезает ту часть, которая выходит из круга