簡體   English   中英

如何更改 Flutter 中的圖標顏色?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM