标签: dismissible

如何在取消之前获得可取消的拖动量-Flutter

DismissibleFlutter中的小部件可让您 onDismissed: (direction) {....} 告诉您它在关闭后被拖动的方向。我如何获取当前拖动小部件的方向(或增量)?

我尝试将其包装在GestureDectecor()具有onHorizontalDragStart:etc的容器中,但似乎阻止了Dismissible的工作(即,您无法拖动它)

flutter dismissible

6
推荐指数
2
解决办法
208
查看次数

Flutter 可禁用的唯一键

我有一个Dismissible小部件列表如下:

Dismissible(
            direction: DismissDirection.endToStart,
            key: Key(widget.data[i]),
            onDismissed: (direction) {
              widget.onRemoveRequest(i, widget.data[i]);
            },
            background: Container(
              color: Colors.red,
              child: Row(
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisAlignment: MainAxisAlignment.end,
                children: <Widget>[
                  Padding(
                    padding: const EdgeInsets.only(right: 20.0),
                    child: Text(
                      "Delete",
                      textAlign: TextAlign.right,
                      style: TextStyle(
                        color: Colors.white,
                        fontWeight: FontWeight.w500,
                        fontSize: 16.0,
                      ),
                    ),
                  ),
                ],
              ),
            ),
            child: CustomTextField(
              padding: const EdgeInsets.only(left: 30.0, right: 30.0),
              hintText: widget.newEntryHint,
              text: widget.data[i],
              keyboardType: TextInputType.multiline,
              onChanged: (val) {
                widget.onChanged(i, val);
              },
            ),
          )
Run Code Online (Sandbox Code Playgroud)

除了删除匹配的对象时,它按预期工作。

注意:widget.onRemoveRequest从源数据中删除指定索引处的对象,widget.data

widget.data是一个 …

key dart flutter dismissible

3
推荐指数
1
解决办法
6250
查看次数

Dismissible 和 FutureBuilder 不能一起工作

这是一个复杂的问题,但我会尽力解释它。

我的项目使用 sqflite 数据库。这个特定的页面根据数据库中的数据返回一个 Dismissible 小部件列表。这是我读取数据的方式:

class TaskListState extends State<TaskList> {
  DBProvider dbProvider = new DBProvider();
  Future<List<Task>> allTasks;

  @override
  void initState() {
    allTasks = dbProvider.getAllTasks();
    super.initState();
  }

  void update(){
    setState(() {
      allTasks = dbProvider.getAllTasks();
    });
  }
  //build
}
Run Code Online (Sandbox Code Playgroud)

TaskList 小部件返回一个带有 FutureBuilder 的页面,该页面使用数据库中的数据构建一个 ListView.builder。ListView 构建 Dismissible 小部件。关闭 Dismissible 小部件会更新数据库中的一行并再次读取数据以更新列表。

TaskListState 的构建方法

  @override
  Widget build(BuildContext context) {
    return ListView(
      physics: const AlwaysScrollableScrollPhysics(),
      children: <Widget>[
        //other widgets such as a title for the list
        ),
        FutureBuilder(
          future: allTasks,
          builder: (context, snapshot){
            if(snapshot.hasError){
              return …
Run Code Online (Sandbox Code Playgroud)

future dart flutter dismissible sqflite

2
推荐指数
1
解决办法
962
查看次数

Flutter Slidable SlidableAction 即使没有被按下也调用 onPressed

我正在使用一个名为flutter_slidable 的库。下面是我的 fetchItems 方法


static Future<List<Item>> fetchItems(String url) async {
    try {
      // pub spec yaml http:
      // import 'package:http/http.dart' as http;
      final response = await http.get(
          Uri.parse(
              url),
          headers: {
            "Content-Type": "application/json",
            "Authorization": "Bearer tltsp6dmnbif01jy9xfo9ssn4620u89xhuwcm5t3",
          }) /*.timeout(const Duration(seconds: Config.responseTimeOutInSeconds))*/;

      final List<Item> itemsList;

      if (response.statusCode == 200) {
        itemsList = json
            .decode(response.body)
        // In event of failure return line below
        //.cast<Map<String, dynamic>>()
            .map<Item>((json) => Item.fromJson(json))
            .toList();
      } else if (response.statusCode == 401) {
        itemsList = [];
      } else …
Run Code Online (Sandbox Code Playgroud)

dart flutter dismissible

1
推荐指数
1
解决办法
2864
查看次数

标签 统计

dismissible ×4

flutter ×4

dart ×3

future ×1

key ×1

sqflite ×1