我在列表底部有芯片的列表 View 。
从列表 View 开始的第一个图像中,其呈圆形,但最后显示为矩形。
滚动列表 View 时,Chip 1天溢出。(第二张图片)
我希望双方底部都需要圆形,如何实现?提前致谢。
我的密码
Container(
padding: EdgeInsets.only(
top: 16.0,
),
width: MediaQuery.of(context).size.width,
height: 100,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12.0),
color: Colors.white),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(""),
Container(
height: 35,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(12.0),
bottomRight: Radius.circular(12.0)),
color:
Theme.of(context).chipTheme.backgroundColor),
child: ListView(
scrollDirection: Axis.horizontal,
children: getChoiceChips(),
),
)
],
),
)
芯片功能
getChoiceChips() {
List<Widget> choiceChipList = [];
List<String> choiceString = [
'1 Day',
'1 Week',
'1 Month',
'3 Months',
'1 Year'
];
for (String choice in choiceString) {
choiceChipList.add(Padding(
padding: const EdgeInsets.only(left: 2.0, right: 2.0),
child: ChoiceChip(
label: Text(choice),
selected: choice == selectedChoice,
onSelected: (newSelectedChoice) {
setState(() {
print(selectedChoice);
print(newSelectedChoice);
selectedChoice = choice;
print(selectedChoice);
print(choice);
});
},
),
));
}
return choiceChipList;
}
最佳答案
BoxDecoration
中的Container
仅将圆角显示为视觉特征。如果您想将内容实际剪切到那些圆角内且没有溢出,则希望将容器包围在 ClipRRect
中。
ClipRRect(
borderRadius: BorderRadius.circular(12.0),
child: Container(
padding: EdgeInsets.only(top: 16.0),
width: MediaQuery.of(context).size.width,
height: 100,
decoration: BoxDecoration(color: Colors.white),
child: Column(
...
),
),
),