【问题标题】:How to get the first index value in FlutterFlutter中如何获取第一个索引值
【发布时间】:2021-02-09 22:02:39
【问题描述】:

我正在尝试在我的卡片小部件中显示第一个索引项,但我不确定为什么它没有显示,所以如果我能得到任何帮助或建议,我将不胜感激。

我能够从第二个 TileItem 获得它,但我不确定为什么它没有显示第一个 TileItem。

我尝试更改 listbuilderwidget 中的条件,但仍然无法修复它。

  Widget listbuilderwidget(Item app, int index, BuildContext context) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: [
        SizedBox(width: index == 0 ? 0 : 10),
        verticalBarSeparator(app.tileItem[index == 0 ? 1 : index].middleText),
        index == 0
            ? infoWidget(app.figures, app.tileItem[index],
                app.tileItem[1].middleText, context)
            : tileWidget(app.tileItem[index], context),
      ],
    );
  }


  Widget infoWidget(
      Figures figures, TileItem item, String text, BuildContext context) {
    return Container(
      child: Padding(
        padding: EdgeInsets.fromLTRB(10, 5, 10, 0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Text(
              figures.title,
              overflow: TextOverflow.ellipsis,
              style: Theme.of(context).textTheme.h9,
            ),
            SizedBox(height: 5),
            Text(
              figures.subtitle,
              overflow: TextOverflow.ellipsis,
              style: TextStyle(
                fontSize: 13,
                color: Theme.of(context).secondaryHeaderColor,
              ),
            ),
            Icon(
              int.parse(text) < 0 ? Icons.trending_down : Icons.trending_up,
              color: int.parse(text) < 0 ? Colors.red : Colors.green,
              size: 26,
            )
          ],
        ),
      ),
    );
  }

  Widget tileWidget(TileItem item, BuildContext context) {
    return Padding(
      padding: EdgeInsets.fromLTRB(10, 5, 10, 0),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Container(
            width: item.topText.characters.length <= 6 ? 65 : null,
            child: Text(
              item.topText,
              overflow: TextOverflow.ellipsis,
              style: Theme.of(context).textTheme.h9,
            ),
          ),
          SizedBox(height: 5),
          Text(
            item.middleText,
            style: TextStyle(
                fontSize: 13, color: Theme.of(context).secondaryHeaderColor),
          ),
          Container(
            padding: EdgeInsets.all(0),
            child: Icon(
              int.parse(item.middleText) < 0
                  ? Icons.trending_down
                  : Icons.trending_up,
              color: int.parse(item.middleText) < 0 ? Colors.red : Colors.green,
              size: 26,
            ),
          )
        ],
      ),
    );
  }


【问题讨论】:

  • 你为什么要这样做?指数 == 0 ? infoWidget(app.figures, app.tileItem[index], app.tileItem[1].middleText, context) : tileWidget(app.tileItem[index], context), .... index 0 应该给你的第一项一个列表
  • 嗨,我很困惑。那我该怎么办?
  • 好吧,我写了一个答案,但我不确定这是否会有所帮助,但也许,如果它不起作用,请告诉我

标签: flutter dart flutter-layout flutter-dependencies flutter-animation


【解决方案1】:

您好,我不确定我是否给出了最佳答案,但这里有一些选项:

  1. 请尝试titleItem[0]
  2. 使用以下选项之一:.key, .value, .first

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 2019-10-01
    • 2015-09-11
    • 2019-11-26
    • 1970-01-01
    相关资源
    最近更新 更多