标签: flutter-gridview

扑。如何为 SliverGrid 添加填充

我将 CustomScrollView 与 SliverGrid 一起使用。我使用以下命令在网格项之间添加空间:mainAxisSpacing:8,crossAxisSpacing:8。但是是否可以在第一列之前和最后一列之后添加空间(边距/填充)。我尝试将 SliverGrid 包裹在 Padding 中,但出现错误:

RenderViewport 期望有一个 RenderSliv​​er 类型的子代,但收到了一个 RenderPadding 类型的子代。

渲染对象需要特定类型的子对象,因为它们在布局和绘制期间与其子对象进行协调。例如,RenderSliv​​er 不能是 RenderBox 的子级,因为 RenderSliv​​er 不理解

请帮助我如何添加 GridView 的开始和结束边距。

flutter flutter-sliver flutter-gridview

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

Flutter GridView 项 wrap_content 高度

我是一名 android 开发人员,并且是 flutter 的新手。

我想创建一个GridViewwrap content项目高度(我的截图用钢笔绘制)。但是我已经尝试过以下代码,它只给了我方形网格项。我想知道如何获取高度环绕内容网格项,但我不知道也找不到如何获取它。请帮忙。谢谢你。

在此处输入图片说明

class CategoryItem extends StatelessWidget {
  final Category category;
  CategoryItem({Key key, @required this.category})
      : assert(category != null),
        super(key: key);

  @override
  Widget build(BuildContext context) {
    return Card(
      child: Text(
        category.name,
        style: TextStyle(fontSize: 34.0, fontWeight: FontWeight.bold),
      ),
      color: Colors.amberAccent,
    );
  }
}


class CategoryGrid extends StatefulWidget {

  final List<Category> items;

  const CategoryGrid({Key key, this.items}) : super(key: key);

  @override
  _CategoryGridState createState() => _CategoryGridState();
}

class _CategoryGridState extends State<CategoryGrid> {

  @override
  Widget build(BuildContext context) …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-gridview

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

Flutter 的 Listview 没有像 Wrap 那样自动换行?

我想显示大小可变的小部件列表。

Flutter 的 Wrap 非常适合我的布局需求。

final List<dynamic> someItems; 

return SingleChildScrollView(
  child: Wrap(
    children: someItems.map((item) => _createTile(context, item)).toList(),
  ),
  scrollDirection: Axis.vertical,
);
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是一个致命的问题是,Wrap 不能懒惰地创建小部件。例如,如果上图中显示的 Tile 小部件少于 100 个,但数据列表的数量更多,Wrap 甚至会创建不可见的小部件。

// The result of taking a log once for each item when configuring Wrap with a list of 1000 data.
I/flutter ( 4437): create Widget 0
I/flutter ( 4437): create Widget 1
I/flutter ( 4437): create Widget 2
I/flutter ( 4437): create Widget 3
I/flutter ( 4437): create Widget 4
I/flutter ( …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-gridview flutter-listview

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

Flutter删除GridView行之间的空间

我正在尝试创建一个凸起按钮的gridview,但是在网格的各行之间有大量空间,如下图所示:

在此处输入图片说明

我正在用页面底部的代码实现GridView:

如您所见,我设置了:

SliverGridDelegateWithMaxCrossAxisExtent(maxCrossAxisExtent: 150, mainAxisSpacing: 4, crossAxisSpacing: 4), 
Run Code Online (Sandbox Code Playgroud)

我曾希望设置主轴间距和横轴间距会删除这些间距。

我还尝试过在大小框中返回gridview并将其更改为SliverGridWithFixedCount,但似乎没有任何更改。

我不确定我在布局中做错了什么吗?

谢谢你的帮助

body: Column(
        children: <Widget>[
          Flexible(
            child: filtersGridView(),
          ),
        ],
      ),
    );
  }
}


class filtersGridView extends StatefulWidget {
  @override
  _filtersGridViewState createState() => _filtersGridViewState();
}

class _filtersGridViewState extends State<filtersGridView> {

  final List <DocumentSnapshot> documents;
  _filtersGridViewState({this.documents});

  @override
  Widget build(BuildContext context) {
    return StreamBuilder(
      stream: Firestore.instance.collection('categories').snapshots(),
      builder: (BuildContext context, AsyncSnapshot snapshot) {
        if (!snapshot.hasData) {
          return Center(child: const Text('Loading events...'));
        }
        return GridView.builder(
          gridDelegate:
          SliverGridDelegateWithMaxCrossAxisExtent(maxCrossAxisExtent: 150, mainAxisSpacing: 4, crossAxisSpacing: 4), …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout flutter-gridview

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

如何在 Flutter gridview 中从右到左填充数据

我试图从右到左填充网格视图数据,因为应用程序是阿拉伯语,一切都是 RTL。

这是我想要的 在此处输入图片说明

我正在使用 Stream builder 来填充数据和以下 Gridview 小部件

 Widget productGrid(List<Product> products) => GridView.count(
        crossAxisCount: 3,
        reverse: true,

        controller: _scrollController,
        padding: EdgeInsets.all(4.0),
        childAspectRatio: 8.0 / 14,
        children: products
            .map(
              (product) => MyBookList(item: product),
            )
            .toList(),
      );
Run Code Online (Sandbox Code Playgroud)

有什么方法可以水平反转项目填充方向,就像reverse参数从底部到顶部垂直填充一样。谢谢你。

flutter flutter-gridview

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