#flutter #dart #flutter-layout
Вопрос:
Я хотел бы центрировать CircleAvatar(). Я попытался центрировать() и передать контейнер(), Заполнение() его родителю, чтобы это произошло. У вас есть какие-нибудь предложения?
endDrawer: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: [
UserAccountsDrawerHeader(
margin: EdgeInsets.only(bottom: 40.h),
decoration: BoxDecoration(color: Colors.blue[100]),
currentAccountPicture: CircleAvatar(
radius: 60.r,
backgroundColor: Colors.white,
child: Image.asset('assets/sermedhavuz.png')),
accountName:
SizedBox(child: Text(user.userName.toUpperCase())),
accountEmail: SizedBox(child: Text(user.email)),
),
],
),
)
Вот фотография ящика:
Комментарии:
1. пожалуйста, добавьте
UserAccountsDrawerHeader
кодовую часть2. Вы хотите, чтобы я добавил родителя ящика, потому что здесь находится UserAccountsDrawerHeader.
3. в этой части кода вы просто передаете параметр в UserAccountsDrawerHeader; на самом деле
UserAccountsDrawerHeader
вам нужен код части, в которой вы назначаете имя учетной записи , маржу и т. Д
Ответ №1:
Единственный способ сделать это (без создания пользовательского ящика) — установить размер currentAccountPicture
с currentAccountPictureSize
, а затем Center
работает:
double widthDrawer = MediaQuery.of(context).size.width * 0.75;
return Container(
width: widthDrawer,
child: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: [
UserAccountsDrawerHeader(
margin: EdgeInsets.only(bottom: 40.h),
decoration: BoxDecoration(color: Colors.blue[100]),
currentAccountPictureSize: Size(widthDrawer, 80), //set custom height
currentAccountPicture: Center( //now Center works
child: CircleAvatar(
radius: 60.r,
backgroundColor: Colors.white,
child: Image.asset('assets/sermedhavuz.png')),
),
accountName:
SizedBox(child: Text(user.userName.toUpperCase())),
accountEmail: SizedBox(child: Text(user.email)),
),
],
),
),
);
Чтобы узнать ширину ящика, установите контейнер в качестве родительского с пользовательской шириной.
Ответ №2:
Используйте container
с alignment: Alignment.center
endDrawer: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: [
UserAccountsDrawerHeader(
margin: EdgeInsets.only(bottom: 40.h),
decoration: BoxDecoration(color: Colors.blue[100]),
currentAccountPicture: Container(
alignment: Alignment.center
child: CircleAvatar(
radius: 60.r,
backgroundColor: Colors.white,
child: Image.asset('assets/sermedhavuz.png'))
),
accountName:
SizedBox(child: Text(user.userName.toUpperCase())),
accountEmail: SizedBox(child: Text(user.email)),
),
],
),
)
Комментарии:
1. Это не работает 🙁 Я пробовал это много раз. Кстати, спасибо