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

Câu hỏi: PRM393 - Điều hướng và Navigator

23 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/23 câuCòn 3
1What is the purpose of SliverAppBar?4 lựa chọnTrung bình67% trả lời đúng
AStatic app bar
BScrollable flexible app bar
CBottom navigation
DDrawer control
Lời giải
SliverAppBar là một widget trong Flutter giúp tạo một thanh điều hướng có thể cuộn. Nó cho phép thanh điều hướng được ẩn khi người dùng cuộn lên, tạo ra một giao diện đẹp mắt và dễ sử dụng. Khi người dùng cuộn xuống, thanh điều hướng sẽ xuất hiện trở lại, giúp người dùng dễ dàng điều hướng qua các trang khác nhau trong ứng dụng. SliverAppBar cũng cho phép người dùng tùy chỉnh các thuộc tính như màu sắc, hình ảnh, và nội dung của thanh điều hướng.
Mở trang câu hỏi này →
ADisable animation
BReplace the current route so Back does not return to Login
CTo grow the stack more
DBecause `push` does not exist
Lời giải
Sau khi đăng nhập thành công, chúng ta thường muốn chuyển hướng đến trang chính của ứng dụng. Trong trường hợp này, nếu sử dụng `push` để thêm mới một trang vào lịch sử, khi người dùng nhấn nút Back, ứng dụng sẽ quay trở lại trang đăng nhập trước đó. Điều này không mong muốn vì chúng ta muốn người dùng quay trở lại trang chính của ứng dụng. Vì vậy, chúng ta nên sử dụng `pushReplacement` để thay thế trang hiện tại, từ đó ngăn chặn việc quay trở lại trang đăng nhập.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Các đường dẫn được chỉ định được kích hoạt bằng phương thức 'Navigator.pushNamed'. Trong lập trình di động, các đường dẫn được chỉ định là một cách để chuyển đổi giữa các màn hình trong ứng dụng. Sử dụng 'Navigator.pushNamed', bạn có thể chuyển đổi sang màn hình khác mà không cần phải biết địa chỉ URL cụ thể của màn hình đó. Điều này giúp cho việc quản lý và bảo trì ứng dụng trở nên dễ dàng hơn. Ngoài ra, phương thức này cũng giúp cho việc chuyển đổi giữa các màn hình trở nên linh hoạt hơn, vì bạn có thể dễ dàng thay đổi địa chỉ URL mà không cần phải thay đổi mã nguồn.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Widget 'Hero' được sử dụng để tạo hiệu ứng chuyển đổi giữa các màn hình khác nhau. Nó cho phép bạn tạo một hiệu ứng chuyển đổi hấp dẫn và chuyên nghiệp giữa các màn hình, giúp tăng cường trải nghiệm người dùng. Ví dụ, bạn có thể sử dụng Hero để chuyển đổi giữa màn hình chính và màn hình chi tiết sản phẩm. Hero cũng cho phép bạn thêm các hiệu ứng chuyển đổi như lật, xoay, hoặc di chuyển để tạo ra một hiệu ứng chuyển đổi độc đáo.
Mở trang câu hỏi này →
5What does Navigator.pop() do?4 lựa chọn
ARestart app
BOpen a new screen
CClear stack
DClose current screen
Lời giải
Navigator.pop() là một phương thức trong Flutter được sử dụng để loại bỏ một màn hình khỏi ngăn xếp màn hình. Khi bạn gọi Navigator.pop(), nó sẽ loại bỏ màn hình hiện tại khỏi ngăn xếp và quay trở lại màn hình trước đó. Điều này có nghĩa là nếu bạn đang ở màn hình A và bạn gọi Navigator.pop(), bạn sẽ quay trở lại màn hình B nếu màn hình B là màn hình trước đó trong ngăn xếp. Nếu ngăn xếp chỉ có một màn hình, thì việc gọi Navigator.pop() sẽ đóng ứng dụng. Vì vậy, Navigator.pop() không chỉ đơn giản là đóng màn hình hiện tại mà còn có thể ảnh hưởng đến ngăn xếp màn hình.
Mở trang câu hỏi này →
6What is a route in Flutter?4 lựa chọn
AA database path
BAn abstraction for a screen or page
CA theme configuration
DA network request
Lời giải
Trong Flutter, một route (hay còn gọi là đường dẫn) là một khái niệm quan trọng trong việc quản lý các màn hình hoặc trang. Nó đại diện cho một màn hình hoặc trang cụ thể trong ứng dụng. Một route có thể được xem như một điểm đến trong ứng dụng, nơi mà người dùng có thể di chuyển đến từ một màn hình hoặc trang khác. Mỗi route có thể có một số thuộc tính như tên, tham số, và hành vi khi người dùng di chuyển đến hoặc rời khỏi màn hình đó. Các route trong Flutter thường được sử dụng để quản lý các màn hình khác nhau trong ứng dụng, chẳng hạn như màn hình đăng nhập, màn hình đăng ký, hoặc màn hình chính của ứng dụng.
Mở trang câu hỏi này →
ABetter animations
BReduced memory usage
CFaster performance
DEasier navigation management in large apps
Lời giải
Sử dụng đường dẫn tên (named routes) mang lại nhiều lợi ích trong việc quản lý điều hướng, đặc biệt là trong các ứng dụng lớn. Khi sử dụng đường dẫn tên, bạn có thể dễ dàng quản lý và cập nhật các trang trong ứng dụng mà không cần phải thay đổi mã nguồn. Điều này giúp giảm thiểu lỗi và tăng cường hiệu suất của ứng dụng. Ngoài ra, đường dẫn tên cũng giúp bạn dễ dàng thực hiện các tác vụ như chuyển hướng và cập nhật trạng thái ứng dụng. Điều này đặc biệt hữu ích khi bạn cần quản lý nhiều trang và tính năng trong ứng dụng.
Mở trang câu hỏi này →
AAutomatic themes
BBetter control over the navigation stack
CSimpler code
DFaster rendering
Lời giải
Navigator 2.0 là một công cụ hỗ trợ thiết kế giao diện người dùng, giúp người dùng có thể tạo ra các ứng dụng di động và web với giao diện đẹp mắt và dễ sử dụng. Trong đó, ưu điểm chính của Navigator 2.0 là người dùng có thể có được sự kiểm soát tốt hơn đối với ngăn xếp điều hướng. Điều này có nghĩa là người dùng có thể dễ dàng quản lý các trang và chuyển đổi giữa chúng một cách linh hoạt. Điều này giúp người dùng có thể tạo ra các ứng dụng có giao diện dễ sử dụng và dễ dàng di chuyển giữa các trang.
Mở trang câu hỏi này →
ATheme management
BScreen navigation
CAPI calls
DState management
Lời giải
Trong Flutter, Navigator đóng vai trò quan trọng trong việc quản lý các trang màn hình. Nó cho phép bạn di chuyển giữa các màn hình khác nhau trong ứng dụng của mình. Navigator sử dụng một cấu trúc cây để quản lý các trang màn hình, giúp bạn dễ dàng di chuyển giữa các màn hình và quản lý trạng thái của ứng dụng. Khi bạn sử dụng Navigator, bạn có thể dễ dàng thêm hoặc xóa các trang màn hình khỏi cây cấu trúc, giúp bạn quản lý ứng dụng của mình một cách hiệu quả.
Mở trang câu hỏi này →
AIt forcefully asserts that a nullable expression is non-null.
BIt manages the platform-specific transition animation between screens.
CColumn arranges children vertically, while Row arranges children horizontally.
DIt contains the source code for unit, widget, and integration tests.
Lời giải
Trong Flutter, `MaterialPageRoute` là một lớp được sử dụng để quản lý chuyển đổi màn hình giữa các trang. Nó giúp tạo ra các hiệu ứng chuyển đổi mượt mà và hấp dẫn giữa các màn hình, tùy thuộc vào nền tảng mà ứng dụng đang chạy. Ví dụ, trên Android, `MaterialPageRoute` sẽ tạo ra một hiệu ứng chuyển đổi giống như trên các thiết bị Android, trong khi trên iOS, nó sẽ tạo ra một hiệu ứng chuyển đổi giống như trên các thiết bị iOS. Điều này giúp tạo ra một trải nghiệm người dùng mượt mà và thống nhất trên tất cả các nền tảng.
Mở trang câu hỏi này →
AWrap
BHero
Ctrue
DCard
Lời giải
Khi sử dụng hàm `identical(a, b)` trong Dart, nó sẽ trả về giá trị `true` nếu cả hai biến `a` và `b` tham chiếu đến cùng một đối tượng. Trong trường hợp này, chúng ta đang nói về một lớp đơn thể (singleton class). Lớp đơn thể là một lớp chỉ có một đối tượng được tạo ra trong suốt quá trình chạy chương trình. Nếu cả hai biến tham chiếu đến cùng một đối tượng của lớp đơn thể, hàm `identical(a, b)` sẽ trả về `true`, vì chúng đang tham chiếu đến cùng một đối tượng.
Mở trang câu hỏi này →
AiOS only
BDeclarative stack/URL sync — better for web and complex deep links
CRemoves routes
DNo difference
Lời giải
Navigator 2.0 được thiết kế để giải quyết các vấn đề của Navigator 1.0, đặc biệt là trong việc quản lý các liên kết phức tạp và đồng bộ hóa giữa stack và URL. Navigator 1.0 chủ yếu tập trung vào các ứng dụng di động iOS, trong khi Navigator 2.0 được tối ưu hóa cho cả web và các ứng dụng di động phức tạp. Điều này cho phép Navigator 2.0 xử lý các liên kết sâu và phức tạp một cách hiệu quả hơn, đồng thời đảm bảo rằng trạng thái của ứng dụng được đồng bộ hóa chính xác giữa stack và URL. Điều này đặc biệt quan trọng trong các ứng dụng có nhiều màn hình và yêu cầu quản lý trạng thái phức tạp.
Mở trang câu hỏi này →
AiOS plist only
B`pubspec.yaml`
C`AndroidManifest.xml` (`intent-filter` on the activity)
D`main.dart` only
Lời giải

Android deep links là một tính năng cho phép ứng dụng Android mở trang cụ thể trong ứng dụng khác khi người dùng nhấp vào liên kết. Để khai báo Android deep links, bạn cần thêm thông tin vào file `AndroidManifest.xml`. Cụ thể, bạn cần thêm thẻ `intent-filter` vào hoạt động (activity) mà bạn muốn khai báo deep links. Trong thẻ `intent-filter`, bạn cần thêm thông tin về loại dữ liệu mà hoạt động này có thể xử lý và hành động mà hoạt động này sẽ thực hiện khi nhận được dữ liệu đó. Ví dụ, nếu bạn muốn khai báo deep links cho hoạt động xem chi tiết sản phẩm, bạn có thể thêm thẻ `intent-filter` như sau:

Lời giải
<intent-filter>
  <action android:name="android.intent.action.VIEW"/>
  <category android:name="android.intent.category.DEFAULT"/>
  <category android:name="android.intent.category.BROWSABLE"/>
  <data android:scheme="https" android:host="example.com" android:pathPrefix="/product"/>
</intent-filter>

Bằng cách thêm thẻ `intent-filter` này, bạn đã khai báo deep links cho hoạt động xem chi tiết sản phẩm và cho phép người dùng mở trang này bằng cách nhấp vào liên kết có dạng https://example.com/product/...

Mở trang câu hỏi này →
AWrap
BCard
CForm
DHero
Lời giải
Trong lập trình web, khi tạo một trang web có nhiều trường nhập liệu (form field), chúng ta cần một cách tổ chức và nhóm các trường này lại với nhau. Lớp nào trong các lựa chọn dưới đây có thể đóng vai trò như một hộp chứa (container) để nhóm các trường nhập liệu này lại?
Mở trang câu hỏi này →
ACard
BSet
Cas
DHero
Lời giải
Trong Dart, có nhiều loại dữ liệu tập hợp (collection) khác nhau. Để lưu trữ một tập hợp không có thứ tự và chứa các giá trị duy nhất, chúng ta sử dụng loại dữ liệu tập hợp gọi là Set. Set là một tập hợp không có thứ tự, không có giá trị trùng lặp và không có chỉ mục. Điều này giúp chúng ta dễ dàng lưu trữ và tìm kiếm các giá trị trong tập hợp. Ví dụ, nếu chúng ta muốn lưu trữ một tập hợp các màu sắc duy nhất, chúng ta có thể sử dụng Set.
Mở trang câu hỏi này →
AHero
Bas
CSet
DCard
Lời giải

Để chuyển đổi một đối tượng sang một loại cụ thể trong Dart, bạn cần sử dụng toán tử 'as'. Ví dụ, nếu bạn có một biến có kiểu Object và bạn muốn chuyển đổi nó sang kiểu String, bạn có thể sử dụng toán tử 'as' như sau: var str = obj as String; Điều này sẽ giúp bạn truy cập các phương thức và thuộc tính của kiểu String mà không cần phải thực hiện các kiểm tra kiểu phức tạp. Tuy nhiên, nếu bạn cố gắng chuyển đổi một đối tượng sang một kiểu không phù hợp, Dart sẽ không phát hiện ra lỗi và sẽ không báo cáo bất kỳ thông báo nào. Vì vậy, bạn cần phải đảm bảo rằng đối tượng có thể được chuyển đổi sang kiểu mong muốn.

Mở trang câu hỏi này →
AForm
BHero
CCard
DWrap
Lời giải
Widget Hero trong Flutter được thiết kế để xử lý chuyển đổi màn hình, nơi một phần tử 'bay' từ màn hình này sang màn hình khác. Nó cho phép bạn tạo ra các hiệu ứng chuyển đổi màn hình hấp dẫn và chuyên nghiệp. Hero widget thường được sử dụng để hiển thị hình ảnh hoặc văn bản trên các màn hình khác nhau, tạo ra một trải nghiệm người dùng liền mạch và thú vị. Để sử dụng Hero widget, bạn cần đặt nó vào một vị trí cụ thể trên màn hình và sau đó sử dụng nó trong các màn hình khác để tạo ra chuyển đổi màn hình.
Mở trang câu hỏi này →
APOST
BWrap
CCard
DHero
Lời giải
Phương thức HTTP được sử dụng phổ biến để gửi dữ liệu đến máy chủ để tạo một tài nguyên mới là POST. Khi sử dụng phương thức POST, bạn có thể gửi dữ liệu dưới dạng chuỗi, đối tượng JSON hoặc tệp tin. Điều này cho phép bạn tạo một tài nguyên mới trên máy chủ, chẳng hạn như tạo một tài khoản mới, thêm một sản phẩm vào giỏ hàng hoặc tạo một bài đăng mới. Phương thức POST thường được sử dụng trong các ứng dụng web để tạo, cập nhật hoặc xóa dữ liệu trên máy chủ.
Mở trang câu hỏi này →
AHero
BWrap
Chttp
DCard
Lời giải
Để thực hiện các yêu cầu HTTP trong ứng dụng Flutter, bạn cần sử dụng một gói (package) phù hợp. Trong các lựa chọn đã cho, gói nào là tiêu chuẩn cho việc này?
Mở trang câu hỏi này →
AHero
BCard
CForm
DWrap
Lời giải
Widget được sử dụng để áp dụng một phong cách hình ảnh đồng nhất (như bóng và góc tròn) vào một mảnh nội dung là Card. Card là một thành phần thường được sử dụng trong thiết kế giao diện người dùng để trình bày thông tin một cách rõ ràng và hấp dẫn. Nó có thể bao gồm hình ảnh, tiêu đề, văn bản và các yếu tố khác. Khi sử dụng Card, bạn có thể áp dụng các hiệu ứng hình ảnh như bóng, góc tròn, màu sắc và kiểu chữ để tạo ra một phong cách hình ảnh đồng nhất và chuyên nghiệp.
Mở trang câu hỏi này →