Ngân hàng câu hỏi của chương

Câu hỏi: PRM393 - Bố cục và layout

21 câu trắc nghiệm kèm lời giải của môn Lập trình di động (Flutter) - Mobile Programming, xếp theo thứ tự nhập vào ngân hàng.

Danh sách câu hỏi

20/21 câuCòn 1
1Which widget enables custom scroll effects in Flutter?4 lựa chọnKhó33% trả lời đúng
AListView
BSingleChildScrollView
CCustomScrollView
DColumn
Lời giải
Trong Flutter, CustomScrollView là một widget cho phép tạo ra các hiệu ứng cuộn tùy chỉnh. Nó cung cấp các phương thức để tạo ra các hiệu ứng cuộn phức tạp như cuộn theo chiều ngang, cuộn theo chiều dọc, hoặc thậm chí là cuộn theo cả hai chiều cùng lúc. CustomScrollView cũng cho phép bạn thêm các widget khác vào bên trong nó, tạo ra một cấu trúc dữ liệu phức tạp và linh hoạt. Điều này làm cho CustomScrollView trở thành một lựa chọn tuyệt vời cho các ứng dụng cần có hiệu ứng cuộn tùy chỉnh.
Mở trang câu hỏi này →
2What does crossAxisAlignment control?4 lựa chọnTrung bình60% trả lời đúng
AVertical alignment in Column
BHorizontal alignment in Column
CChild order
DWidget size
Lời giải
CrossAxisAlignment là một thuộc tính trong Flutter giúp bạn kiểm soát cách sắp xếp các widget con trong một Column hoặc Row. Nó quyết định cách các widget con được sắp xếp theo chiều ngang hoặc chiều dọc. Ví dụ, nếu bạn muốn các widget con được sắp xếp theo chiều ngang, bạn có thể sử dụng thuộc tính CrossAxisAlignment.start. Nếu bạn muốn các widget con được sắp xếp theo chiều dọc, bạn có thể sử dụng thuộc tính CrossAxisAlignment.center. Ngoài ra, thuộc tính này cũng có thể được sử dụng để sắp xếp các widget con theo chiều ngang trong một Row.
Mở trang câu hỏi này →
3`ListView` inside an unbounded `Column` — common fix?4 lựa chọnDễ100% trả lời đúng
AWrap `ListView` in `Expanded` (Column has bounded height) or `shrinkWrap` + suitable physics
BDo nothing
CRemove `Column`
DSwitch to `Row`
Lời giải
Khi sử dụng ListView bên trong một cột không có giới hạn chiều cao (unbounded Column), bạn sẽ gặp phải vấn đề về kích thước của ListView. Để giải quyết vấn đề này, bạn có thể sử dụng một trong hai cách sau. Trước hết, bạn có thể bọc ListView trong một Expanded widget, điều này sẽ giúp ListView có thể mở rộng theo chiều cao của cột. Ngoài ra, bạn cũng có thể sử dụng shrinkWrap và thêm một vật lý phù hợp để giúp ListView có thể thu nhỏ theo chiều cao của cột. Điều này sẽ giúp ListView có thể hiển thị đúng kích thước và tránh được các vấn đề về kích thước.
Mở trang câu hỏi này →
4Column arranges widgets in which direction?4 lựa chọnTrung bình67% trả lời đúng
AHorizontal
BVertical
CGrid
DStack
Lời giải
Cột sắp xếp các widget theo hướng nào? Trong thiết kế giao diện người dùng, cột thường được sử dụng để sắp xếp các widget theo chiều dọc. Điều này giúp tạo ra một bố cục rõ ràng và dễ sử dụng. Ví dụ, trong một ứng dụng di động, cột có thể được sử dụng để hiển thị danh sách các mục, với mỗi mục được hiển thị dưới dạng một widget riêng biệt. Điều này giúp người dùng dễ dàng tìm kiếm và chọn mục muốn sử dụng.
Mở trang câu hỏi này →
5Row arranges widgets in which direction?4 lựa chọnDễ75% trả lời đúng
AVertical
BDiagonal
CHorizontal
DRandom
Lời giải
Hàng là một cấu trúc sắp xếp các widget theo một hướng nhất định. Trong thiết kế giao diện người dùng, hàng thường được sắp xếp theo hướng ngang (Horizontal). Điều này có nghĩa là các widget được sắp xếp theo chiều ngang, tạo thành một hàng liên tục. Hướng này giúp người dùng dễ dàng theo dõi và tương tác với các widget. Ví dụ, trong một ứng dụng di động, hàng có thể được sử dụng để sắp xếp các nút bấm, ô vuông hoặc ô tròn. Mục đích của việc sắp xếp hàng là tạo ra một giao diện người dùng dễ sử dụng và trực quan.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Widget 'Expanded' phải được sử dụng trong một Row, Column hoặc Flex để chiếm không gian còn lại. Khi sử dụng Expanded, widget sẽ được mở rộng để chiếm toàn bộ không gian còn lại trong Row, Column hoặc Flex. Điều này giúp widget có thể chiếm toàn bộ không gian còn lại, ngay cả khi kích thước của widget không được xác định cụ thể. Ví dụ, nếu bạn muốn một widget chiếm toàn bộ không gian còn lại trong một Row, bạn có thể sử dụng Expanded như sau: Row(children: [Expanded(child: Text('Widget chiếm không gian còn lại'))]).
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Trong thiết kế giao diện người dùng, 'ListTile' widget thường được sử dụng bên trong 'Card' widget để tạo ra một mục danh sách được cấu trúc. Điều này giúp tạo ra một giao diện hấp dẫn và dễ sử dụng. Khi sử dụng 'ListTile' widget, bạn có thể thêm các thông tin như tiêu đề, mô tả, và các nút hành động vào một mục danh sách duy nhất. Điều này giúp giảm thiểu không gian và tăng cường trải nghiệm người dùng.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Widget Wrap được coi là phù hợp để hiển thị các chip vì nó tự động sắp xếp các mục sang dòng tiếp theo khi không gian hạn chế. Điều này giúp đảm bảo rằng các mục được hiển thị một cách rõ ràng và dễ đọc, ngay cả khi không gian hạn chế. Widget Wrap cũng cho phép người dùng dễ dàng thêm hoặc xóa các mục mà không cần phải lo lắng về việc sắp xếp lại các mục khác. Tính năng tự động sắp xếp này giúp giảm thiểu thời gian và công sức cần thiết để quản lý các mục trong widget.
Mở trang câu hỏi này →
9What happens if layout constraints are violated in Flutter?4 lựa chọnDễ100% trả lời đúng
AWidget is ignored
BA layout overflow error occurs
CApp crashes silently
DUI is automatically fixed
Lời giải
Nếu các ràng buộc sắp xếp layout bị vi phạm trong Flutter, ứng dụng sẽ gặp phải lỗi layout overflow. Điều này xảy ra khi các widget không thể được sắp xếp một cách hợp lý trên màn hình, dẫn đến việc một phần của widget bị cắt hoặc không hiển thị. Lỗi này có thể gây ra các vấn đề về hiệu suất và trải nghiệm người dùng. Để tránh lỗi này, các nhà phát triển cần đảm bảo rằng các ràng buộc sắp xếp layout được thiết lập một cách chính xác và hợp lý.
Mở trang câu hỏi này →
10What is Container used for?4 lựa chọnDễ100% trả lời đúng
AOnly text
BLayout, padding, decoration
CNavigation
DAPI calls
Lời giải
Container trong HTML được sử dụng để định dạng và sắp xếp các phần tử con trong trang web. Nó giúp tạo ra bố cục và thêm padding, decoration cho các phần tử đó. Ví dụ, bạn có thể sử dụng div để tạo ra một phần tử chứa các phần tử con khác, chẳng hạn như hình ảnh, văn bản, nút bấm, v.v. Container cũng có thể được sử dụng để thêm các thuộc tính như màu sắc, kích thước, vị trí, v.v. cho các phần tử con. Điều này giúp tạo ra một giao diện người dùng hấp dẫn và dễ sử dụng.
Mở trang câu hỏi này →
11What is SizedBox used for?4 lựa chọnDễ100% trả lời đúng
AFetch data
BControl size
CHandle state
DTheme app
Lời giải
SizedBox trong Flutter được sử dụng để kiểm soát kích thước của một widget. Nó cho phép bạn đặt kích thước cố định cho widget đó, giúp bạn có thể quản lý không gian và bố cục của ứng dụng một cách dễ dàng. Bạn có thể sử dụng SizedBox để đặt kích thước cho một widget cụ thể, chẳng hạn như một hình ảnh hoặc một văn bản. Điều này đặc biệt hữu ích khi bạn cần đảm bảo rằng widget đó có kích thước nhất định để phù hợp với thiết kế của ứng dụng.
Mở trang câu hỏi này →
12What is the function of the `Expanded` widget within a `Column` or `Row`?4 lựa chọnDễ75% trả lời đúng
AIt provides a default value if the expression on its left is null.
BIt forces a child to fill the remaining available space in the main axis.
CIt creates a stream that can be listened to by multiple subscribers simultaneously.
DIt builds itself based on the latest snapshot of interaction with a Future.
Lời giải
Trong Flutter, widget Expanded được sử dụng để buộc một widget con phải chiếm hết không gian còn lại trong trục chính (main axis) của một Column hoặc Row. Điều này có nghĩa là widget con sẽ được mở rộng để chiếm hết không gian còn lại, ngay cả khi kích thước của nó không được xác định rõ ràng. Ví dụ, nếu bạn có một Column với hai widget con, một widget có kích thước cố định và một widget khác sử dụng Expanded, thì widget sử dụng Expanded sẽ chiếm hết không gian còn lại trong trục chính. Điều này giúp tạo ra một bố cục động và linh hoạt trong ứng dụng của bạn.
Mở trang câu hỏi này →
13What is the main purpose of the Container widget?4 lựa chọnDễ100% trả lời đúng
AState management
BNetwork requests
CLayout, styling, and positioning
DNavigation
Lời giải
Widget Container trong Flutter là một trong những widget cơ bản nhất, được sử dụng để chứa và sắp xếp các widget khác. Mục đích chính của widget Container là để quản lý layout, thiết kế và vị trí của các widget con. Nó cho phép bạn thêm các thuộc tính như màu sắc, hình dạng, kích thước và các thuộc tính khác để tùy chỉnh giao diện của ứng dụng. Ngoài ra, widget Container cũng có thể được sử dụng để tạo ra các vùng chứa riêng biệt cho các widget khác, giúp phân chia và tổ chức giao diện ứng dụng một cách rõ ràng và dễ dàng sử dụng.
Mở trang câu hỏi này →
14What is the primary difference between `Column` and `Row` widgets in Flutter?4 lựa chọnDễ100% trả lời đúng
AColumn arranges children vertically, while Row arranges children horizontally.
BIt encapsulates all network communication logic, separating it from the UI layer.
CIt forcefully asserts that a nullable expression is non-null.
DIt manages the platform-specific transition animation between screens.
Lời giải
Trong Flutter, Column và Row là hai loại widget được sử dụng để sắp xếp các widget con. Column được sử dụng để sắp xếp các widget con theo chiều dọc, trong khi Row được sử dụng để sắp xếp các widget con theo chiều ngang. Điều này có nghĩa là nếu bạn muốn hiển thị một số widget theo thứ tự từ trên xuống dưới, bạn nên sử dụng Column. Ngược lại, nếu bạn muốn hiển thị một số widget theo thứ tự từ trái sang phải, bạn nên sử dụng Row. Điều này giúp bạn có thể thiết kế giao diện người dùng một cách linh hoạt và dễ dàng hơn.
Mở trang câu hỏi này →
15What is the purpose of `SingleChildScrollView`?4 lựa chọnTrung bình67% trả lời đúng
AIt manages the focus state of a specific widget, such as a text field, and handles keyboard events.
BIt allows a single child widget to be scrollable when it exceeds the screen's vertical or horizontal space.
CIt is called exactly once when the widget is inserted into the tree, used for one-time initialisation.
DIt allows a widget to rebuild only when a specific part of a model changes, rather than the entire model.
Lời giải
SingleChildScrollView là một widget trong Flutter giúp cho một widget con duy nhất có thể được cuộn khi nó vượt quá không gian màn hình theo chiều dọc hoặc ngang. Điều này đặc biệt hữu ích khi bạn cần hiển thị một danh sách dài các widget mà không muốn chúng bị cắt ngắn. Ví dụ, khi bạn muốn hiển thị một danh sách các sản phẩm trong một cửa hàng trực tuyến và danh sách này quá dài để hiển thị trên một màn hình duy nhất. Trong trường hợp này, bạn có thể sử dụng SingleChildScrollView để cho phép người dùng cuộn qua danh sách sản phẩm.
Mở trang câu hỏi này →
16What is the purpose of the `Padding` widget in Flutter?4 lựa chọnDễ100% trả lời đúng
AIt forcefully asserts that a nullable expression is non-null.
BIt manages the platform-specific transition animation between screens.
CIt insets its child by a specified amount of space.
DIt contains the source code for unit, widget, and integration tests.
Lời giải
Widget Padding trong Flutter được sử dụng để thêm khoảng trống xung quanh một widget con. Điều này giúp tạo ra khoảng cách giữa widget con và các widget khác trong giao diện người dùng. Bạn có thể sử dụng thuộc tính padding để chỉ định số lượng khoảng trống cần thêm vào mỗi hướng (trên, dưới, trái, phải). Điều này giúp tạo ra một giao diện người dùng đẹp mắt và dễ sử dụng. Ví dụ, bạn có thể sử dụng Padding để thêm khoảng trống giữa một nút bấm và một văn bản. Ngoài ra, bạn cũng có thể sử dụng Padding để tạo ra một khoảng cách giữa một widget và cạnh của màn hình.
Mở trang câu hỏi này →
17What is the role of the Expanded widget?4 lựa chọnDễ75% trả lời đúng
AForce a widget to take available space
BFix widget size
CAlign widgets
DAdd margin
Lời giải
Widget được mở rộng (Expanded widget) là một widget trong Flutter có vai trò quan trọng trong việc sắp xếp và bố trí các widget trong giao diện người dùng. Khi một widget được mở rộng, nó sẽ chiếm toàn bộ không gian còn trống trong bố cục của ứng dụng. Điều này có nghĩa là widget sẽ tự động mở rộng để chiếm toàn bộ không gian còn trống, giúp tạo ra một bố cục đẹp mắt và cân đối. Ví dụ, nếu bạn muốn một widget chiếm toàn bộ chiều rộng của màn hình, bạn có thể sử dụng widget được mở rộng và đặt nó vào một Column hoặc Row. Điều này giúp tạo ra một bố cục đẹp mắt và dễ sử dụng.
Mở trang câu hỏi này →
ASnackBar
BScaffold
CrunApp()
Dmain.dart
Lời giải
Trong Flutter, widget cung cấp cấu trúc cơ bản cho giao diện người dùng. Nó bao gồm thanh tiêu đề mặc định, nút hành động nổi và cấu trúc bố cục. Để tạo ra một giao diện người dùng cơ bản, bạn cần sử dụng widget Scaffold. Widget này cung cấp các tính năng như thanh tiêu đề, nút hành động nổi, và các vùng chứa khác. Nó giúp bạn tạo ra một giao diện người dùng cơ bản và dễ sử dụng. Ngoài ra, widget Scaffold cũng cho phép bạn thêm các widget khác vào để tạo ra giao diện người dùng phức tạp hơn.
Mở trang câu hỏi này →
19Which statement best describes Flutter's layout system?4 lựa chọnDễ100% trả lời đúng
AChild controls parent size
BUses XML layouts
CBased on absolute positioning
DParent sets constraints, child chooses size
Lời giải
Flutter có một hệ thống sắp xếp layout phức tạp. Hệ thống này cho phép các widget con tự động điều chỉnh kích thước dựa trên các ràng buộc được đặt bởi widget cha. Điều này cho phép các widget con tự động thay đổi kích thước theo yêu cầu của ứng dụng mà không cần phải sử dụng các giá trị kích thước cố định. Hệ thống sắp xếp layout của Flutter cũng cho phép các widget con được sắp xếp theo nhiều cách khác nhau, bao gồm cả việc sử dụng các widget khác nhau để tạo ra một layout phức tạp. Điều này giúp cho việc tạo ra các ứng dụng có giao diện người dùng phức tạp trở nên dễ dàng hơn.
Mở trang câu hỏi này →
20What does the Padding widget do?4 lựa chọn
AAdds space inside a widget
BAdds space between widgets
CAligns widgets
DControls widget size
Lời giải
Đáp án đúng: A. Padding là widget bọc quanh một widget con và chèn thêm khoảng trống Ở BÊN TRONG nó, giữa biên của Padding và widget con, theo giá trị EdgeInsets được truyền vào. Nói cách khác nó tạo lề trong cho phần nội dung mà nó bao. Phương án B mô tả khoảng cách GIỮA các widget anh em, thường đạt được bằng SizedBox, Spacer hoặc thuộc tính spacing của Row/Column; phương án C là việc của Align hay Center; phương án D thuộc về SizedBox, ConstrainedBox hoặc thuộc tính width và height của Container.
Mở trang câu hỏi này →