在颤动中结束通话后显示弹出窗口

Show popup after ending the call in flutter

提问人:Flutter 提问时间:11/17/2023 最后编辑:Frank van PuffelenFlutter 更新时间:11/20/2023 访问量:59

问:

我需要在结束通话后显示弹出对话框,就像真正的呼叫者一样,将联系电话保存在数据库中,那么在 android 的 flutter 中可以吗?我的代码是 kotlin 语言。因此,如果您有任何解决方案,请告诉我。

我是开发领域的新人,所以如果您有任何建议,请告诉我。

谢谢。

.

安卓 颤振 飞镖

评论


答:

0赞 Notepad 11/17/2023 #1

你可以使用 FutureBuilder 或 StreamBuilder 来处理 Flutter 异步编程。

futurebuilder 正在使用单个 api 调用 ex) Restful API 的 POST 的位置。或者他们只有一个响应

Streambuilder 可以同化为一个值,该值可以随时间而变化,但在 Futurebuilder 中的用法相同

FutureBuilder(
            future: _future(),
            builder: (BuildContext context, AsyncSnapshot snapshot) {
              if (snapshot.hasData == false) {
                return CircularProgressIndicator();
              }
              else if (snapshot.hasError) {
                return Padding(
                  padding: const EdgeInsets.all(8.0),
                  
                  child: Text(
                    'Error: ${snapshot.error}',
                    style: TextStyle(fontSize: 15),
                  ),
                );
              }

              else {
                return Padding(
                  padding: const EdgeInsets.all(8.0),

                  child: Text(
                    snapshot.data.toString(),
                    style: TextStyle(fontSize: 15),
                  ),
                );
              }
            })
0赞 Ashok Kmr 11/20/2023 #2

像这样,

   SizedBox(
          height: 30,
          child: ElevatedButton(
            onPressed: () {
              _showCallDetail(context);
            },
            style: ElevatedButton.styleFrom(
              shape: RoundedRectangleBorder(
                borderRadius: BorderRadius.circular(25),
              ),
              padding: const EdgeInsets.all(5),
              backgroundColor: Colors.red,
              foregroundColor: Colors.cyan,
            ),
            child: const Icon(Icons.call_end, color: Colors.white),
          ),
        ),

警报功能

  Future<void> _showCallDetail(BuildContext context) async {
    return showDialog<void>(
      context: context,
      barrierDismissible: false, 
      builder: (BuildContext context) {
        return AlertDialog(
          title: const Center(child: Text('Call Ended')),
          content: const SingleChildScrollView(
            child: ListBody(
              children: <Widget>[
                Center(child: Text("Call log id : 563834948")),
                Center(child: Text('Duration: 32:42 ')),
              ],
            ),
          ),
          actions: <Widget>[
            TextButton(
              child: const Text('close'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }

有个包叫,share加试试那个