首页 > 解决方案 > Flutter如何删除gridview顶部空间

问题描述

我在我的 gridview 上获得了一个空间。我试图删除它但没有成功。它看起来像这样:

我想要的是:

这是我的代码:

Container(
      margin: EdgeInsets.all(10),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
              Text(
                "Check",
                style: TextStyle(color: Colors.black, fontSize: 18, fontWeight: FontWeight.bold),
                textAlign: TextAlign.left,
              ),
              GridView.count(
                physics: NeverScrollableScrollPhysics(),
                shrinkWrap: true,
            crossAxisCount: 1,
            crossAxisSpacing: 2,
            mainAxisSpacing: 10,
            childAspectRatio: 5.1,
            children: <Widget>[
              GestureDetector(
                child: _buildWidget("Car", 0),
                onTap: () => setState(() => _languageIndex = 0),
              ),
              GestureDetector(
                child: _buildWidget("Boat", 1),
                onTap: () => setState(() => _languageIndex = 1),
              ),
            ],
          ),
      ],
    ));

Widget _buildWidget(String language, int index) {
    bool isSelected = _languageIndex == index;
    return Container(
      alignment: Alignment.center,
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(4),
        border: Border.all(color: isSelected ? Colors.blue.withOpacity(1.0) : Colors.black26),
        color: isSelected ? Colors.white.withOpacity(0.0) : Colors.white
      ),
      child:
      Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          SizedBox(width:10),
      Text(
        language,
        style: TextStyle(fontSize: 16,fontWeight: FontWeight.bold, color: isSelected ? Colors.black : Colors.black26),
      ),
      SizedBox(width:20),
      ],)
    );
  }

我该怎么做才能删除文本和网格视图之间的空间?或者我可以用另一种方式来获得我正在寻找的输出吗?

标签: flutterdartgridview

解决方案


GridView小部件有一个默认值,您可以通过给它一个来padding删除。paddingpaddingEgdeInsets.zero

 GridView.count(
                       padding: EdgeInsets.zero // set padding to zero
                physics: NeverScrollableScrollPhysics(),
                shrinkWrap: true,
            crossAxisCount: 1,
            crossAxisSpacing: 2,
            mainAxisSpacing: 10,
            childAspectRatio: 5.1,
            children: <Widget>[
              GestureDetector(
                child: _buildWidget("Car", 0),
                onTap: () => setState(() => _languageIndex = 0),
              ),
              GestureDetector(
                child: _buildWidget("Boat", 1),
                onTap: () => setState(() => _languageIndex = 1),
              ),
            ],
          ),

推荐阅读