0

我一直在编写一个应用程序,它要求用户能够从列表中消除对象。我让这一切正常工作,然后突然停止工作,我不知道为什么。

我已经注释掉了几乎所有的代码 - 剩下的就是这些了,但是可忽略的 STILL 不起作用(尽管它以前工作得很好!!!!!!):

//... setup stuff not relevant to question

class _Screen extends State<Screen> {

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: profileCard(true),
    );

Dismissible profileCard(bool centre) {

    return Dismissible(
      key: GlobalKey(),
      background: Container(
        width: MediaQuery.of(context).size.width * 0.8,
        height: MediaQuery.of(context).size.height * 0.3,
        color: Colors.green,
      ),
      secondaryBackground: Container(
        width: MediaQuery.of(context).size.width * 0.8,
        height: MediaQuery.of(context).size.height * 0.3,
        color: Colors.red,
      ),
      child: Container(
        width: MediaQuery.of(context).size.width * 0.8,
        height: MediaQuery.of(context).size.height * 0.3,
        color: Colors.purple,
      ),
    );

//....

滑动动作根本无法正常工作,我正在撕扯我的头发为什么那里有任何 Flutter 专家可以帮助我吗?

谢谢!

4

2 回答 2

0

正如@Benedikt J Schlegel 所述,您的代码适用于Dismissible.

import 'package:flutter/material.dart';
void main() {
  runApp(MaterialApp(
    home: Screen(),
  ));
}

class Screen extends StatefulWidget {
  @override
  _ScreenState createState() => _ScreenState();
}

class _ScreenState extends State<Screen> {
  Dismissible profileCard(bool centre) {
    return Dismissible(
      key: GlobalKey(),
      background: Container(
        width: MediaQuery.of(context).size.width * 0.8,
        height: MediaQuery.of(context).size.height * 0.3,
        color: Colors.green,
      ),
      secondaryBackground: Container(
        width: MediaQuery.of(context).size.width * 0.8,
        height: MediaQuery.of(context).size.height * 0.3,
        color: Colors.red,
      ),
      child: Container(
        width: MediaQuery.of(context).size.width * 0.8,
        height: MediaQuery.of(context).size.height * 0.3,
        color: Colors.purple,
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('Dismissible'),
        ),
        body: profileCard(true));
  }
}
于 2020-06-11T10:53:44.367 回答
0

似乎错误来自以每 44 毫秒间隔运行一个计时器并在那里设置一个布尔值。

不知道为什么会这样,因为有问题的布尔值与可解雇无关。

谢谢你的帮助,伙计们。

于 2020-06-11T11:35:20.030 回答