Плитка расширения Flutter - изменение цвета заголовка и изменение цвета анимированной стрелки - PullRequest
0 голосов
/ 03 декабря 2018

Я использовал плитку расширения для создания представления списка расширения.У меня возникают некоторые проблемы с настройкой в ​​заголовке плитки расширения.

Ниже приведен мой код.

ExpansionTile(           
    title: Container(
        child: Text(
            getCategory(i),
            style: TextStyle(
            color: Colors.white,
            ),
        ),
        color: Colors.black
    ),

    children: <Widget>[
        new Container(
            height: 60.0,
            margin: const EdgeInsets.only(top:10.0, left: 10.0, right:10.0, bottom: 10.0),
            decoration: BoxDecoration(                    
            color: Colors.blue,
            borderRadius: new BorderRadius.all(  Radius.circular(5.0) ),
            ),
        ),
        new Container(
            height: 60.0,
            margin: const EdgeInsets.only(top:10.0, left: 10.0, right:10.0, bottom: 0.0),
            decoration: BoxDecoration(                    
            color: Colors.green,
            borderRadius: new BorderRadius.all(  Radius.circular(5.0) ),
            ),
        )
    ],
    backgroundColor: Colors.white,
)

Я получаю результат ниже.

enter image description here

Ниже показано, что я ожидаю.

enter image description here

Если кто-нибудь знает обходной путь для настройки заголовкацвет, пожалуйста, совет.

1 Ответ

0 голосов
/ 08 декабря 2018

Если вы проверите исходный код ExpansionTitle, вы заметите, что элемент заголовка является ListTile, поэтому вы не можете изменить фон, потому что у него нет родителя со свойством цвета.Я немного изменил класс для поддержки того, что вам нужно.

Добавьте этот файл в ваш проект: https://gist.github.com/diegoveloper/02424eebd4d6e06ae649b31e4ebcf53c

И импортируйте так, чтобы избежать конфликтов из-за того же имени.

    import 'package:nameofyourapp/custom_expansion_tile.dart' as custom;

Я поставил псевдоним 'custom', но вы можете изменить любой псевдоним.

Использование:

    custom.ExpansionTile(
              headerBackgroundColor: Colors.black,
              iconColor: Colors.white,
              title: Container(
              ...

Помните, у Flutter много виджетов из коробки., но если какой-либо из них не подходит вам, вам нужно проверить исходный код и создать свой собственный виджет.

...