Флаттер: выгруженные виджеты при запуске приложения и не отвечающие виджеты

#flutter #dart

#трепетание #дротик

Вопрос:

некоторое время я пытался изучить Flutter для мобильной разработки. Итак, все прямолинейно и легко понять. Но, похоже, следующие проблемы я не могу решить:

  • Изменение размера CircleAvatar() в AppBar : Я пробовал использовать scale size , но ничего не получилось.
  • Что бы я ни добавил после 1-го ListView.builder() , эмулятор не считывает / не отображает

мой flutter обновлен, и никакие ошибки / проблемы не отображаются при запуске flutter doctor или запуске приложения.

Спасибо

Используемый код:

 class MessageScreen extends StatefulWidget {
  static Route<dynamic> route() => MaterialPageRoute(
        builder: (context) => MessageScreen(),
      );
  @override
  _MessageScreenState createState() => _MessageScreenState();
}

class _MessageScreenState extends State<MessageScreen> {
  String tempLink =
      'https://images.unsplash.com/photo-1599566150163-29194dcaad36?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw=amp;ixlib=rb-1.2.1amp;auto=formatamp;fit=cropamp;w=634amp;q=80';
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.blue[400],
      appBar: AppBar(
        elevation: 0.0,
        leading: CircleAvatar(
          backgroundImage: NetworkImage(tempLink),
          radius: 15.0,
          child: tempLink == null ? Text('HH') : null,
        ),
        title: Text('Chats'),
        backgroundColor: Colors.blue[400],
        actions: [
          IconButton(
            onPressed: () {},
            icon: Icon(Icons.search),
          ),
        ],
      ),
      body: Column(
        children: [
          Row(
            children: [
              Container(
                child: ListView.builder(
                  itemCount: newMatching.length,
                  padding: EdgeInsets.only(left: 6),
                  scrollDirection: Axis.horizontal,
                  itemBuilder: (BuildContext context, int index) {
                    return GestureDetector(
                      onTap: () => Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (_) => ChatScreen(
                            user: newMatching[index],
                          ),
                        ),
                      ),
                      child: _profileButton(tempLink),
                    );
                  },
                ),
              ),
            ],
          ),
          SizedBox(
            height: 18,
          ),
          Container(
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(20), topRight: Radius.circular(20)),
            ),
            child: ListView.builder(
                itemCount: chats.length,
                itemBuilder: (BuildContext context, int index) {
                  final Message chat = chats[index];
                  return GestureDetector(
                    onTap: () => Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder: (_) => ChatScreen(
                          user: chat.sender,
                        ),
                      ),
                    ),
                    child: Container(
                        margin: EdgeInsets.only(top: 5, bottom: 5, right: 1),
                        padding:
                            EdgeInsets.symmetric(horizontal: 2, vertical: 5),
                        decoration: BoxDecoration(
                          color: chat.unread ? Color(0xFFFFEFEE) : Colors.white,
                          borderRadius: BorderRadius.only(
                            topRight: Radius.circular(20.0),
                            bottomRight: Radius.circular(20.0),
                          ),
                        ),
                        child: _chatNavigatorButton(
                            chat.sender.imgAvatar,
                            chat.sender.fname,
                            chat.text,
                            chat.time,
                            chat.unread)),
                  );
                }),
          ),
        ],
      ),
    );
  }
}

 

Ответ №1:

  • Попробуйте CircleAvatar обернуть Container :
 Container(height: 10, width: 10, child: CircleAvatar(...))
 
  • Есть ли вероятность, что chats длина просто равна 0 и нет элементов? Возможно, второй ListView.builder() отображается правильно, но не содержит элементов. По крайней мере, это то, что я могу извлечь из данного кода.