相关疑难解决方法(0)

Flutter-ExpansionTile 在点击时展开和折叠

我以此作为扩展和折叠扩展瓦片的参考------- Flutter - 选择项目后折叠扩展瓦片

我想要的是,如果我打开一个扩展图块并且用户单击另一个扩展图块,则其他打开的扩展图块应该关闭。

我的应用程序快照

import 'package:flutter/material.dart';
import 'package:meta/meta.dart';

void main() {
  runApp(new ExpansionTileSample());
}

class ExpansionTileSample extends StatefulWidget {
  @override
  ExpansionTileSampleState createState() => new ExpansionTileSampleState();
}

class ExpansionTileSampleState extends State<ExpansionTileSample> {
  final GlobalKey<AppExpansionTileState> expansionTile = new GlobalKey();
  String foos = 'One';

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          title: const Text('ExpansionTile'),
        ),
        body: GestureDetector(
          onTap: () {
            setState(() {
             // this.foos = 'One';
              expansionTile.currentState.collapse();
            });
          },
          child: Column(
            children: <Widget>[ …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

颤动 - 选择项目后折叠ExpansionTile

ExpansionTile选择一个项目后,我试图崩溃,但它没有关闭打开的列表.

我试图使用该onExpansionChanged属性,但我没有成功

你怎么能解决这个问题?

插入一个演示ExpansionTile在选择项目后不会崩溃的gif ,下面也是使用的代码.

在此输入图像描述

import 'package:flutter/material.dart';

void main() {
  runApp(new ExpansionTileSample());
}

class ExpansionTileSample extends StatefulWidget {
  @override
  ExpansionTileSampleState createState() => new ExpansionTileSampleState();
}

class ExpansionTileSampleState extends State<ExpansionTileSample> {
  String foos = 'One';

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          title: const Text('ExpansionTile'),
        ),
        body: new ExpansionTile(
          title: new Text(this.foos),
          backgroundColor: Theme.of(context).accentColor.withOpacity(0.025),
          children: <Widget>[
            new ListTile(
              title: const Text('One'),
              onTap: () {
                setState(() {
                  this.foos = …
Run Code Online (Sandbox Code Playgroud)

dart flutter

8
推荐指数
4
解决办法
1万
查看次数

如何在 Flutter 中一次仅展开一个 ExpansionTile

我已经建立了一个ListviewExpansionTile. 但现在我希望,如果我点击一个ExpansionTile,那么只有那个ExpansionTile应该打开,其他扩展ExpansionTile应该关闭。

请帮助我如何实现这一目标?

这是我的代码ExpansionTile

   @override
      Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
              title: Text("Short Product"),
            ),
            body: ListView.builder(
              itemCount: Category_List.length,
              itemBuilder: (context, i) {
                return ExpansionTile(
                  title: Text(Category_List[i].cat_name),
                  children:_Product_ExpandAble_List_Builder(Category_List[i].cat_id)
                );
              },
            )
         );
      }

      _Product_ExpandAble_List_Builder(int cat_id) {
        List<Widget> columnContent = [];
        Product_List.forEach((product) => {
                columnContent.add(
                  ListTile(
                    title: ExpansionTile(
                        title: Text(product.prod_name),
                        ),
                    trailing: Text("${product.total_Qty} (Kg)"),
                  ),
                ),
            });
        return columnContent;
      }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢。

expandablelistview flutter flutter-layout

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