[英]How to change icon color in Flutter?
這是代碼片段
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: controller.items.length,
itemBuilder: (_, index) {
final _item = controller.items[index];
if(_item['rota'] == Routes.home){
return Obx(() => Container(
decoration: (controller.selectedIndex == index)
? const BoxDecoration(
border: Border(
top: BorderSide(width: 3.0, color: Colors.white),
bottom: BorderSide(width: 3.0, color: Colors.white),
),
)
: null,
child: Obx(() => Card(
color: const Color(0XFF007E94),
elevation: 3,
child: ListTile(
title: Text(
_item['titulo'],
style: TextStyle(color: (controller.selectedIndex == index ) ? Colors.black : Colors.white),
),
leading: _item['icone'],
onTap: () {
controller.selectedIndex = index ;
Get.toNamed(_item['rota']);
},
selected: controller.selectedIndex == index
),
),
),
),
);
}
改變字母顏色的代碼片段就是這個。
title: Text( _item['titulo'],
style: TextStyle(color: (controller.selectedIndex == index ) ? Colors.black : Colors.white),
),
請問,考慮到來自 Page 類的菜單列表,如何更改圖標顏色?
我需要的是選擇菜單時,圖標顏色更改為黑色。
@override
void onInit() {
items.add(
{
'titulo': 'Home',
'icone': const Icon(
Icons.house_rounded,
color: Colors.white,
),
'rota': Routes.home,
},
);
items.add(
{
'titulo': 'Novas Edições',
'icone': Image.asset(AppImages.novasEdicoes),
'rota': Routes.newEditions,
},
);
只需檢查是否選擇了當前索引。 如果是這樣,請使用黑色,否則,請從您的 items 數組中選擇一個。
對於您的用例,它真的很簡單:
Image.asset(
AppImages.novasEdicoes,
color: index == controller.selectedIndex ? Colors.black : items[index].color
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.