Наложить страницу поверх другой страницы с непрозрачностью во флаттере - PullRequest
0 голосов
/ 27 апреля 2020

Мне нужна помощь в создании чего-то похожего на изображение ниже. я хочу, чтобы мой текущий вид накладывался на вид с некоторым эффектом размытия пример изображения

1 Ответ

0 голосов
/ 27 апреля 2020

Вы можете использовать OverLay & фоновый фильтр. Как в примере:

import 'dart:ui' as ui;

import 'package:flutter/material.dart';

class OverLayIssue extends StatelessWidget {
@override
Widget build(BuildContext context) {
 return Scaffold(
   floatingActionButton: FloatingActionButton(
    onPressed: () {
      Overlay.of(context).insert(_getEntry(context));
    },
  ),
  body: Stack(
    fit: StackFit.expand,
    children: <Widget>[
      Text('0' * 10000),
    ],
  ),
);
}

OverlayEntry _getEntry(context) {
OverlayEntry entry;

entry = OverlayEntry(
  opaque: false,
  maintainState: true,
  builder: (_) => Positioned(
    left: 100,
    bottom: 100,
    width: MediaQuery.of(context).size.width,
    height: MediaQuery.of(context).size.height,
    child: BackdropFilter(
      filter: ui.ImageFilter.blur(
        sigmaX: 2,
        sigmaY: 2,
      ),
      child: Material(
        type: MaterialType.transparency,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
            Container(
              width: 200,
              height: 200,
              color: Colors.red,
              child: Text('Hello world'),
            ),
            RaisedButton(onPressed: () => entry.remove())
          ],
        ),
      ),
    ),
  ),
);
return entry;
 }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...