Flutter:如何在appbar中制作圆形头像

标签 flutter dart

美好的一天,我正在努力使应用栏右上角的头像成为一个完美的圆圈。它不断出现椭圆形。

enter image description here

我尝试了很多选项(包括设置半径、使用 ClipRRect、ClipOval 等),它似乎并没有影响圆边的形状。

代码:

return Scaffold(
  appBar: AppBar(
    automaticallyImplyLeading: false,
      backgroundColor: COLORS_BG,
      title: Padding(
        padding: const EdgeInsets.only(top: 10.0),
        child: Row(
          children: <Widget>[
            Image.asset('images/localhourlogo.png', height: 50.0,),
          ]
        ),
      ),
      actions: <Widget>[
        PopupMenuButton<String>(
          icon: CircleAvatar(
            backgroundImage: NetworkImage(googleUserUrl)
          ),
          onSelected: choiceAction,
          itemBuilder: (BuildContext context) {
            return MenuItems.choices.map((String choice) {
              return PopupMenuItem<String> (
                value: choice,
                child: Text(choice),
              );
            }).toList();
          },
        )
      ],

目标:使头像成为一个纯圆形,而不是这个椭圆形。

尝试过:ClipRRect、ClipOval、设置半径最小值和最大值等

感谢您提供的所有帮助。

最佳答案

我过去遇到过这个问题,发现将 AvatarCircle 包裹在宽度为 58 的容器中可以解决圆半径比问题,使其成为正确的圆形。一个像素或多或少可能符合您的喜好。试一试:

Container(
  width: 58,
  child: PopupMenuButton(
    icon: CircleAvatar(
      backgroundImage: NetworkImage(
        "https://4.bp.blogspot.com/-Jx21kNqFSTU/UXemtqPhZCI/AAAAAAAAh74/BMGSzpU6F48/s1600/funny-cat-pictures-047-001.jpg"
      ),
      backgroundColor: Colors.red,
    ),
    itemBuilder: (BuildContext context) {
      return [
        PopupMenuItem<String> (
          value: '1',
          child: Text('1'),
        ),
        PopupMenuItem<String> (
          value: '2',
          child: Text('2'),
        ),
      ];
    },
  ),
)

关于Flutter:如何在appbar中制作圆形头像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59646397/

相关文章:

firebase - flutter应用程序无法与Firebase云数据库进行交互

flutter - 当新版本可用时,Flutter自动更新应用程序

flutter GetX : Animation with GetxController

Dart:将列表列表的字符串表示形式转换为列表列表

flutter - 按下时更改 OutlineButton 的文本颜色

android - 我希望平面按钮文本更新为用户在警报消息“文本”字段中输入的文本

flutter - 等到构造函数/初始化函数将初始化类的成员

encryption - flutter 中的 AES 加密

flutter - Google Play 3 天内自动退款

Flutter Firebase 在真实设备上运行,而不是在 Android 模拟器上运行