Перевод статьи #3 Flutter + Dart Tips.
На нашем блоге публикуется перевод серии статей с очень помогающими нам при работе во Flutter и с Dart советами, которыми делится Flutter коммьюнити и сам автор,
Это статья #3 в данной серии, если вы пропустили предыдущие статьи, то вы сможете найти их по ссылкам:
7. Хотите использовать отдельную Theme для конкретного виджета?
Просто оберните этот виджет в виджет Theme и передайте ThemeData(). Совет от Sahil Kumar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Theme( data: ThemeData(...), child: TextFormField( decoration: const InputDecoration( icon: Icon(Icons.person), hintText: 'Как вас зовут?', labelText: 'Имя *', ), onSaved: (String value) { // Этот необязательный блок кода может быть использован, // чтобы выполнить код когда пользователь сохраняет форму. }, validator: (String value) { return value.contains('@') ? 'Не используйте символ @.' : null; ) |
8. Каскадная нотация — цепочки вызовов на стероидах ??
Каскадная нотация ( ..) позволяет объединять в цепочки последовательность операций на одном и том же объекте. В дополнение, таким же образом можно использовать поля.
Совет от Tirth Patel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
class Person { String name; int age; Person(this.name, this.age); void data() => print("$name сейчас $age лет."); } void main() { // Без каскадной нотации Person person = Person("Ричард", 50); person.data(); person.age = 22; person.data(); person.name += " Паркер"; person.data(); // Каскадная нотация с объектом Person Person("Цзянь", 21) ..data() ..age = 22 ..data() ..name += " Янг" ..data(); // Каскадная нотация со списком List<String>() ..addAll(["Наташа", "Стив", "Питер", "Тони"]) ..sort() ..forEach((name) => print("\n$name")); } |
9. Хотите писать лог в системную консоль во Flutter?
Вы можете использовать функцию print() для записи лога, чтобы видеть его в системной консоли. Если ваш вывод слишком большой, то Android иногда отбрасывает некоторые строки лога. Чтобы избежать этого, вы можете использовать debugPrint.
Вы также можете записывать свои вызовы print на диск, если выполняете какую-то долгую задачу в фоне.
Смотрите этот Gist от Simon Lightfoot.
10. Не отображается эффект нажатия при использовании InkWell?
Используйте виджет Ink! Виджет Ink рисует на том же виджете, что и InkWell , поэтому эффект будет показан.
Твит #FlutterFriday от Flutter.dev.
Подробнее в документации.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class InkWellCard extends StatelessWidget { Widget build(BuildContext context) { return Card( elevation: 3.0, child: Inc( child: InkWell( child: Center( child: Text("Заказать бублики"), ), onTab: () => print("Заказываю...") ), ), ); } } |
. . .
Примеры, показанные здесь могут быть неидеальными, но это просто демонстрация как вы можете применять такие вещи при Flutter разработке.
Это все для выпуска #3 серии. Если у вас есть какие-нибудь советы, которыми вы хотите поделиться со вселенной Flutter, то соберитесь и начинайте делится ими.
Делайте pull реквест в репозиторий со своим советом.
Хорошего и Флаттерного дня!
. . .
Подписывайтесь на Twitter автора и следите за нашим Twitter’ом для обновлений.
Оригинал https://medium.com/flutter-community/3-flutter-dart-tips-18cc8502f451