Трепетать, как выровнять ведущие с заголовком и субтитрами в ListTile - PullRequest
0 голосов
/ 07 июля 2019

Я создаю Listview, используя ListTile. Я пытался отобразить дату, время, заголовок и описание событий. Тем не менее, есть одна проблема с моим ListTile: положение моих данных не совпадают между картами Это действительно влияет на пользовательский опыт с приложением.

Может кто-нибудь помочь мне с этим? Спасибо :)

class MemberEvents extends StatelessWidget {

Widget _buildListItem(BuildContext context, DocumentSnapshot document) {
return Center(
  child: Card(
    child: Column(
      children: <Widget>[
        ListTile(
          leading: new Column(
            children: <Widget>[
              Text(document['date']),
              Text(document['time'])
            ],
          ),
          title: Text(document['title']),
          subtitle: Text(document['description'], maxLines: 3),
        )
      ],
    ),
  ),
);
}

@override
Widget build(BuildContext context) {
return new Scaffold(
  body: StreamBuilder(
      stream: Firestore.instance.collection('events').snapshots(),
      builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
        if (!snapshot.hasData) return const Text('Loading...');
        final int eventCount = snapshot.data.documents.length;
        return ListView.builder(
          itemCount: eventCount,
          itemBuilder: (context, index) =>
              _buildListItem(context, snapshot.data.documents[index]),
        );
      }),
);
 }
 }

1 Ответ

0 голосов
/ 07 июля 2019

Я получил возможность создать свой код, и проблема была решена путем установки свойства mainAxisAlignment на MainAxisAlignment.center внутри виджета Column, который переносит дату и время.

например.

Column(
  mainAxisAlignment: MainAxisAlignment.center,
  children: <Widget>[
    Text("07/07/2019"),
    Text("9:38 AM")
  ],
)

Ваш полный код должен выглядеть следующим образом:

class MemberEvents extends StatelessWidget {

  Widget _buildListItem(BuildContext context, DocumentSnapshot document) {
    return Center(
      child: Card(
        child: Column(
          children: <Widget>[
            ListTile(
              leading: new Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Text(document['date']),
                  Text(document['time'])
                ],
              ),
              title: Text(document['title']),
              subtitle: Text(document['description'], maxLines: 3),
            )
          ],
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: StreamBuilder(
        stream: Firestore.instance.collection('events').snapshots(),
        builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
          if (!snapshot.hasData) return const Text('Loading...');
          final int eventCount = snapshot.data.documents.length;
          return ListView.builder(
            itemCount: eventCount,
            itemBuilder: (context, index) =>
              _buildListItem(context, snapshot.data.documents[index]),
          );
        }
      ),
    );
  }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...