#flutter #dart #flutter-layout
#трепетание #дротик #flutter-макет
Вопрос:
Я пытаюсь сделать свое изображение округлым, но в качестве фона. Проблема в том, что ClipRRect не выполняет то, что я думал, что он должен был делать. Мне бы понравилось решение, отличное от использования стека, потому что таким образом это станет проблемой для изменения размера изображения в соответствии со столбцом, поскольку изображение больше столбца. Большое вам спасибо.
Редактировать: Итак, мне очень жаль всех. похоже, что изображение, которое дал мне мой коллега, было дополнено непреднамеренно, поэтому граница не работает. В настоящее время я и мой коллега уже исправили изображение, и теперь все работает нормально. Я понял это, используя BoxFit.fill для подгонки, поэтому, если кто-то может наткнуться на это, он может захотеть попробовать Boxfit.first, чтобы проверить изображение.
ClipRRect(
borderRadius: BorderRadius.circular(8),
child: DecoratedBox(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
image: DecorationImage(
image: AssetImage(
'images/ic_blackbackground.png',
),
fit: BoxFit.cover,
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(
top: 24,
bottom: 16,
left: 24,
),
child: Text(
"Info Kios",
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w700,
fontSize: 16,
),
),
),
Container(
width: double.infinity,
height: 1,
color: Colors.white,
),
Padding(
padding: const EdgeInsets.only(top: 20, bottom: 24),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Column(
children: [
Text(
'Nama Kios',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: Colors.white,
),
),
Text(
widget._kurirPengambilanModel.pedagang.namaKios,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w700,
color: Colors.white,
),
),
],
),
Column(
children: [
Text(
'Nomor Kios',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: Colors.white,
),
),
Text(
widget
._kurirPengambilanModel.pedagang.nomorKios,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w700,
color: Colors.white,
),
),
],
)
],
),
),
],
),
),
),
Ответ №1:
Удалите свой cliprect. BorderRadius
DecoratedBox
для достижения этого достаточно.
Попробуйте это:
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: DecoratedBox(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30),
image: DecorationImage(
image: AssetImage(
'images/ic_blackbackground.png',
),
fit: BoxFit.cover,
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(
top: 24,
bottom: 16,
left: 24,
),
child: Text(
"Info Kios",
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w700,
fontSize: 16,
),
),
),
Container(
width: double.infinity,
height: 1,
color: Colors.white,
),
Padding(
padding: const EdgeInsets.only(top: 20, bottom: 24),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Column(
children: [
Text(
'Nama Kios',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: Colors.white,
),
),
Text(
widget._kurirPengambilanModel.pedagang.namaKios,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w700,
color: Colors.white,
),
),
],
),
Column(
children: [
Text(
'Nomor Kios',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: Colors.white,
),
),
Text(
widget._kurirPengambilanModel.pedagang.nomorKios,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w700,
color: Colors.white,
),
),
],
)
],
),
),
],
),
),
);
}
}