点击ListView Flutter布局中的整行

问题描述 投票:1回答:1

所以我有一个设置屏幕,这是一个ListView,我希望用户能够点击整个列表行来更改该设置。然而,我似乎无法找到一种非疯狂的方式来扩展GestureDetector的孩子以填满整个水平空间。

我的列表视图:

ListView(
    children: [
      GestureDetector(
        onTap: () {
          print('tapped the row');
        },
        child: Padding(
          padding: EdgeInsets.all(16.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Text('Totals expressed in', style: TextStyle(fontSize: 16.0)),
              Text('Percentages', style: TextStyle(color: Colors.black54, fontSize: 15.0)),
            ],
          ),
        ),
      ),
      Divider(height: 1.0),
      // followed by other elements in the list view

这将检测水龙头,但仅检测文本元素水平占据的空间(屏幕宽度的一小部分)。我知道Expanded小部件,但无论我试图把它放在哪里,我得到一个错误,它必须是RowColumn的后代或例外:

RenderFlex子项具有非零flex,但传入高度约束是无限制的。

dart flutter flutter-layout
1个回答
2
投票

在您的代码更改 - crossAxisAlignment: CrossAxisAlignment.start

Column(
      crossAxisAlignment: CrossAxisAlignment.stretch

这将使Column子项占据所有水平空间。


0
投票

我一直在使用具有透明背景颜色的Container来解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.