web-dev-qa-db-ja.com

ListTileに2つの末尾アイコンを配置する

ListTileの「末尾」側に2つのアイコンを並べて配置します。内部に2つのアイコンがあるRowウィジェットを追加しようとしましたが、ListTile全体のレイアウトが完全にめちゃくちゃになり、使用できなくなりました。後続部分に割り当てられたスペースを拡張する方法はありますか?

コードは次のとおりです。

import 'package:flutter/material.Dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Welcome to Flutter',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Welcome to Flutter'),
        ),
        body: ListView(
      children: <Widget>[
        ListTile(
          leading: Icon(Icons.play_arrow,),
          title: Text("This is a title"),
          subtitle: Text("This is subtitle"),
          trailing: Row(          
            children: <Widget>[
            Icon(Icons.flight),
            Icon(Icons.flight_land)
          ]),
        )
      ]
    ),
      ),
    );
  }
}

これは次のようになります。

21
avishorp

Row()インスタンスにmainAxisSize: MainAxisSize.minを追加すると、問題が修正されます。

53
avishorp

Wraptrailingを使用するだけです

ListTile(
  title: Text("This is my ListTile"),
  trailing: Wrap(
    spacing: 12, // space between two icons
    children: <Widget>[
      Icon(Icons.call), // icon-1
      Icon(Icons.message), // icon-2
    ],
  ),
)

enter image description here

0
CopsOnRoad