Флаттер, откройте текст, отображаемый внутри карты в диалоговом окне оповещения - PullRequest
0 голосов
/ 16 апреля 2020

во флаттере, я пытаюсь получить текст на карточке, который будет отображаться в диалоге оповещения, когда на карточку нажимают, как на рисунках ниже:

изображение 1

image 2

Я просто прошу, чтобы меня указали в правильном направлении того, как что-то подобное будет достигнуто. Несмотря на то, что мы будем благодарны за ручное хранение, я спрашиваю, по крайней мере, с чего начать.

Заранее спасибо!

1 Ответ

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

Я бы посоветовал иметь String для текста карты, хранящейся в переменной, тогда вы бы onTap карты вызывали функцию, которую создали, и передали переменную, которую вы сохранили. строка текста - showMyDialog(textVariable), которая вызывает функцию для отображения диалогового окна, а затем отображает текст, используя textVariable.

Я привел более точный пример для достижения того, чего вы хотите. Вы можете настроить интерфейс как u wi sh

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String displayText = "Same Text Everywhere";

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: GestureDetector(
          onTap: ()=> showMyDialog(context,displayText),
          child: Card(
            child: Padding(
              padding: const EdgeInsets.all(10.0),
              child: Text(displayText),
            ),
          ),
        )
      ),
    );
  }

  Future<void> showMyDialog(BuildContext context, String displayText) {
    return showDialog<void>(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          content: Text(displayText),
        );
      },
    );
  }


}
...