Flutter DevKit
  • Giới thiệu
  • Get Started
    • Cài đặt
    • Tạo một ứng dụng Flutter
    • Toán tử trong Dart
    • Troubleshoot
  • WIDGET
    • Tổng quan
  • Deployment
    • Publish cho Ios
    • Publish cho Android
  • Integration
    • Push Notification với Firebase
  • GetX
    • Giới thiệu & Cài đặt
    • State Management
    • Route Management
    • Utils
  • Bot AI
Powered by GitBook
On this page
  • Widget là gì?
  • State
  • Widget thông dụng
  • Tự tạo một widget

Was this helpful?

  1. WIDGET

Tổng quan

Every thing is a widget.

PreviousTroubleshootNextPublish cho Ios

Last updated 5 years ago

Was this helpful?

Widget là gì?

Như Flutter có chia sẻ, mọi thứ với Flutter đều là Widget: Một đoạn text, một button, một hình ảnh, ... Widget được tổ chức theo cấu trúc dạng cây nên có thể chứa các widget con trong một widget.

Bên dưới là một ví dụ về một cây widget đơn giản:

MaterialApp(
  title: "Demo App",
  home: Scaffold(
    appBar: AppBar(
      title: Text(widget.title),
    ),
    body: Center(
      child: Text(
        'You have pushed the button this many times:',
      ),
    ),
  ),
);

State

Là trạng thái của một đối tượng, có thể là trạng thái của widget hay mở rộng hơn là trạng thái của cả ứng dụng.

Ví dụ như trạng thái selected hay deselected đối với một widget checkbox:

Checkbox(
    value: _value,
    onChanged: (bool value) {
      setState(() => _value = value);
    },
)

Hay trạng thái ngôn ngữ của cả ứng dụng:

setState(() {
  appState.setLanguage('vn');
});

Với State, một đối tượng thay đổi thì các đối tượng liên quan cũng tự thay đổi theo. Sự thay đổi này diễn ra ngay lập tức và không cần bất cứ hành động kích hoạt sự kiện (event trigger) nào. Chính vì ưu điểm vô cùng lớn này mà xu hướng State này ngày càng phát triển mạnh mẽ hơn.

Sự thật là điều này đã có mặt trên các JavaScript frameworks nổi tiếng như Angular(JS), React, Vue hay Ember, còn trên mobile thì chỉ mới được phổ biến thông qua React Native và giờ là Flutter.

Widget thông dụng

Flutter cung cấp một bộ các widget mạnh mẽ, điển hình như:

 Text(
      message.body,
      style: TextStyle(
        fontSize: 16,
        fontFamily: 'OpenSansLight',
        color: Colors.white,
      ),
      maxLines: 2,
      overflow: TextOverflow.ellipsis,
  ),
Row(                                                
  mainAxisAlignment: MainAxisAlignment.spaceEvenly, 
  children: [
    Image.asset('images/pic1.jpg'),
    Image.asset('images/pic2.jpg'),
    Image.asset('images/pic3.jpg'),
  ],
);

Tự tạo một widget

Ngoài những widget mà flutter cung cấp. Trong một dự án, ta thường tự tạo ra thêm một số widget để có thể dễ dàng sử dụng và thay đổi như: một thông báo, lịch, hay các button theo định dạng của ứng dụng.

cho phép tạo và tùy chỉnh style của văn bản trên App.

, cho phép bạn tạo bố cục linh hoạt theo cả hai chiều ngang (Hàng) và dọc (Cột).

cho phép xếp các widget chồng lên nhau theo thứ tự và bố trí vị trí của chúng.

cho phép tạo một khung chứa tương tự như thẻ div trong html. Có thể được tùy chỉnh với như nền, viền, độ bóng,...

Text:
Row
Column:
Stack:
Container:
BoxDecoration
Ví dụ về cây widget