Flutter — поднять виджет над другими виджетами

Как я могу поднять виджет над другими виджетами, мне нужно показать непрозрачность фона, когда я фокусируюсь на вводе, и показать ввод над виджетом запроса введите здесь описание изображения введите здесь описание изображения введите здесь описание изображения


person Tamir Haim Rabia    schedule 29.01.2020    source источник
comment
Хм интересный вопрос. Не уверен, что это поможет foreg" title="как я могу создать виджет с полупрозрачным фоном и непрозрачным передним"> stackoverflow.com/questions/47852314/ stackoverflow.com/questions/44612599/   -  person IronMan    schedule 29.01.2020
comment
Не совсем, он запрашивает фон по всему экрану и мне нужно показать только один виджет выше всех, а остальные получат фон с Positioned.fill или что-то в этом роде   -  person Tamir Haim Rabia    schedule 29.01.2020
comment
попробуйте обернуть виджет в виджет Material; установите цвет на прозрачный и измените высоту по мере необходимости.   -  person Doc    schedule 29.01.2020
comment
Я пытался, но дети не меняют высоту   -  person Tamir Haim Rabia    schedule 29.01.2020
comment
Отлично буду ждать. благодарю вас :)   -  person Tamir Haim Rabia    schedule 29.01.2020
comment
этот пакет может помочь pub.dev/packages/showcaseview   -  person Doc    schedule 29.01.2020
comment
Идеальный!!!!!!!!!   -  person Tamir Haim Rabia    schedule 29.01.2020


Ответы (2)


Образец кода в качестве примера

class SO extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: <Widget>[X(), X(), X(), X()],
          ),
        ),
      ),
    );
  }
}

class X extends StatefulWidget {
  @override
  _XState createState() => _XState();
}

class _XState extends State<X> {
  bool isElevated = false;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        print('_XState.build() tap');
        setState(() {
          isElevated = !isElevated;
        });
      },
      child: Material(
        elevation: isElevated ? 40 : 0, //change as needed
        animationDuration: Duration(milliseconds: 400), //change as needed
        child: Container(
          width: 100,
          height: 100,
          color: Colors.red,
        ),
      ),
    );
  }
}
person Doc    schedule 29.01.2020
comment
Пробовал, но так и не могу поставить фон на тех, у кого высота 0 :( - person Tamir Haim Rabia; 29.01.2020
comment
пример должен был показать использование возвышения; эффект, которого вы хотите достичь, потребует некоторой логики цветового фона. - person Doc; 29.01.2020
comment
и вы можете изменить цвет фона, если хотите. и многие другие свойства. - person Doc; 29.01.2020
comment
Это основная проблема. Вам нужно установить фон Colors.black.withOpacity(0.4) по всей странице и показывать над фоном только элементы высоты, а остальные (высота 0) должны быть за фоном. - person Tamir Haim Rabia; 29.01.2020

Вы можете попробовать стек в качестве родительского виджета для всех других виджетов.

person KUMAR KESHAV    schedule 29.01.2020
comment
Пожалуйста, предоставьте больше информации/примеров к вашему ответу - person Sebastian; 30.01.2020