добавьте субтитры в мой код флаттера

Вы только возвращаете список, если в нем есть 1 или 0 элементов (базовый регистр). Вам нужен оператор return и в первом блоке, где вы делаете рекурсивный вызов, иначе вы переходите к базовому регистру, возвращаете список длины-1 на следующий уровень, а затем возвращаете None остальную часть вверх. Итак, вы хотите выглядеть следующим образом:

def process(my_list):
    # Do some stuff.
    if len(my_list) > 1:
        return process(my_list) #If you don't return this result, you return None
    else:
        print(my_list)
        return my_list

Теперь каждый случай (а не только базовый случай) имеет возвращаемое значение, поэтому возвращаемое значение будет распространять все обратно до вашего первоначального вызова.

0
задан Raouf Rahiche 13 July 2018 в 11:22
поделиться

3 ответа

return new Card(
      child: new Container(
        padding: EdgeInsets.all(10.0),
        child: new Row(
          mainAxisAlignment: MainAxisAlignment.start,
          children: <Widget>[
            CircleAvatar(
              backgroundColor: Colors.grey,
              backgroundImage: new NetworkImage("${document['Picture']}"),
              radius: 40.0,
            ),
            SizedBox(
              width: 10.0,
            ),
            Column(
              children: <Widget>[
                Text(document['name']),
                Text('subtitle'),
              ],
            )
          ],
        ),
      ),
    );

Вы можете использовать что-то вроде этого.

0
ответ дан Dhaval 17 August 2018 в 13:04
поделиться

Это то, что вы хотите, просто добавьте ListTile

body: StreamBuilder(
          stream: Firestore.instance.collection('Doctors').snapshots(),
          builder:
              (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
            if (!snapshot.hasData)
              return const Center(child: CircularProgressIndicator());
            return ListView(
              padding: const EdgeInsets.only(top: 8.0),
              children:
              snapshot.data.documents.map((DocumentSnapshot document) {
                return new Card(
                  child: new Container(
                    padding: EdgeInsets.all(10.0),
                    child: new Row(
                      mainAxisAlignment: MainAxisAlignment.start,
                      children: <Widget>[
                        CircleAvatar(
                          backgroundColor: Colors.grey,
                          backgroundImage:
                          new NetworkImage("${document['Picture']}"),
                          radius: 40.0,
                        ),
                        SizedBox(width: 10.0,
                        ),
                        new ListTile(
                         title: Text(document['name']),
                         subtitle: Text('subtitle'),
                      ],
                    ),
                  ),
                );
              }).toList(),
            );
          },
        ),
      ),
0
ответ дан goops17 17 August 2018 в 13:04
поделиться
  • 1
    спасибо, я попробую одно из ваших исправлений и посмотрю, какой мне больше подходит – serjo macken 14 July 2018 в 11:03
  • 2
    это сработало для вас так, как вы хотели работать? – goops17 15 July 2018 в 01:11
  • 3
    Я отредактировал его еще больше, и он стал совершенным, спасибо – serjo macken 15 July 2018 в 10:03

Я думаю, вы пытаетесь отобразить список данных, но я не уверен, действительно ли вам нужен стиль карты, потому что у ваших карт нет разрыва. Для вашего дизайна вы можете использовать List Tile, которые имеют leading для кругового изображения или аватара, title, subtitle и trailing в случае необходимости. вот пример

return new Card(
  child: ListTile(        
    leading: CircleAvatar(
          backgroundColor: Colors.grey,
          backgroundImage: new NetworkImage("${document['Picture']}"),
          radius: 40.0,
        ),
    title: Text(document['name']),
    subtitle: Text('subtitle'),              
    ),
);

без карты

return ListTile(        
    leading: CircleAvatar(
          backgroundColor: Colors.grey,
          backgroundImage: new NetworkImage("${document['Picture']}"),
          radius: 40.0,
        ),
    title: Text(document['name']),
    subtitle: Text('subtitle'),              
);
0
ответ дан Natwar Singh 17 August 2018 в 13:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: