aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
SAVED POSTS
aedev.net
  • Trang chủ
  • AI
  • Mobile
  • Flutter
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
No Result
View All Result
aedev.net
No Result
View All Result
Minh họa phát triển ứng dụng mobile đa nền tảng với Flutter

Flutter AbsorbPointer khi lớp phủ cần chặn nút bên dưới

Suong Nguyen by Suong Nguyen
13/11/2026
in Flutter
0
585
SHARES
3.2k
VIEWS
Summarize with ChatGPTShare to Facebook

Một thẻ có nút mở chi tiết và lớp phủ xuất hiện khi thao tác đang xử lý. Phần nhìn đã tối đi, nhưng yêu cầu là thao tác chạm tại vùng thẻ không kích hoạt nút. Cần mô tả rõ hành vi hit test thay vì dựa vào màu lớp phủ.

Ví dụ và cách đọc

Đoạn tích hợp đặt hai child trong Stack có kích thước xác định. Lớp phủ đứng sau trong danh sách nên nằm phía trên nút, với StackFit.expand để phủ toàn vùng. AbsorbPointer hấp thụ hit test trong vùng đó khi được bật. Nếu dùng IgnorePointer cho lớp trên, lớp đó bị bỏ qua trong hit test và mục tiêu dưới có thể nhận chạm.

import 'package:flutter/material.dart';

Widget preview({required bool blocked, required VoidCallback onOpen}) {
  return SizedBox(
    width: 220,
    height: 100,
    child: Stack(
      fit: StackFit.expand,
      children: [
        FilledButton(onPressed: onOpen, child: const Text('Mở chi tiết')),
        if (blocked)
          const AbsorbPointer(
            child: ColoredBox(color: Color(0x55000000)),
          ),
      ],
    ),
  );
}

Kiểm tra kết quả

Đưa widget vào màn hình Material hiện có và truyền callback tăng bộ đếm. Thử khi blocked=false, chạm nút và kiểm tra bộ đếm tăng. Bật blocked=true, chạm giữa thẻ và gần các cạnh để kiểm tra lớp phủ thực sự bao trọn vùng muốn khóa. Thử mở lại sau khi trạng thái đổi. Đây là kế hoạch kiểm tra theo API Flutter đọc ngày 13/11/2026, chưa chạy SDK hoặc thiết bị.

Áp dụng và giới hạn

Với form có điều hướng bằng bàn phím, kiểm tra focus và thao tác kích hoạt riêng. Nếu nút thật sự không dùng được trong lúc xử lý, truyền trạng thái đó cho nút và xử lý điều kiện ở callback nghiệp vụ phù hợp. Tài liệu API hiện hành mô tả các hành động semantics liên quan pointer bị loại khi hấp thụ. Kiểm tra trợ năng trên phiên bản dự án và tránh suy ra rằng lớp phủ tự giải quyết mọi đường kích hoạt.

Tình huống áp dụng

Khi ghép với trạng thái tải, truyền blocked từ nơi sở hữu yêu cầu. Chẳng hạn sau khi bấm Mở chi tiết, màn hình chuyển sang đang chờ và chỉ mở lại khi có kết quả hoặc lỗi. Kiểm tra cả đường lỗi để bảo đảm lớp phủ không nằm mãi trên thẻ. Nếu chỉ muốn chặn nút bên trong thẻ, chọn kích thước của Stack theo thẻ thay vì phủ toàn màn hình.

Trong test widget của dự án, dùng callback tăng số đếm và xác nhận sau từng lần tap. Với lớp phủ nằm trên nút, hit test của test có thể báo rằng vị trí không trỏ đến nút. Đây chính là tình huống cần kiểm tra bằng tọa độ vùng thẻ, kết hợp assertion về số lần gọi. Để kiểm tra trợ năng, bật trình đọc màn hình và thử đi tới nút trong trạng thái khóa. Điều chỉnh semantics và focus theo hợp đồng giao diện của dự án.

Nguồn tham khảo

  • Tài liệu chính thức 1

Tags: FlutterLayoutPointer
SummarizeShare234
Suong Nguyen

Suong Nguyen

Related Stories

Minh họa phát triển ứng dụng mobile đa nền tảng với Flutter

Flutter Offstage và TickerMode: ẩn widget chưa đủ để ngừng ticker

by Suong Nguyen
12/11/2026
0

Giữ cây widget khi ẩn và điều khiển ticker riêng, với kế hoạch kiểm tra khi hiện lại.

Minh họa phát triển ứng dụng mobile đa nền tảng với Flutter

Flutter bottom sheet có ô nhập: chừa chỗ cho bàn phím bằng viewInsets

by Suong Nguyen
11/11/2026
0

Ghép showModalBottomSheet, padding theo viewInsets và vùng cuộn để kiểm tra form ngắn khi bàn phím xuất hiện.

Minh họa phát triển ứng dụng mobile đa nền tảng với Flutter

Flutter AnimatedOpacity: opacity bằng 0 chưa tự chặn thao tác chạm

by Suong Nguyen
10/11/2026
0

Tách độ trong suốt, hit testing và semantics khi làm nút biến mất bằng AnimatedOpacity, với cùng một state điều khiển từng phần.

Minh họa phát triển ứng dụng mobile đa nền tảng với Flutter

Flutter DropdownButton: value cần khớp đúng một item, không phải một nhãn

by Suong Nguyen
09/11/2026
0

Dùng ID ổn định làm value của DropdownButton để hai mục có cùng nhãn vẫn được chọn đúng, kèm cách rà lựa chọn đã hết tồn tại.

Next Post
Minh họa pipeline CI/CD từ commit đến deploy cho team nhỏ

Git blame -L để lần về commit của một đoạn ngắn

0 0 votes
Article Rating
Subscribe
Login
Notify of
guest
guest
0 Comments
Oldest
Newest Most Voted
AE Dev

AE Dev mang đến các bài viết về lập trình, mobile app, backend, frontend, WordPress và công nghệ, phù hợp cho developer muốn học hỏi và cập nhật kiến thức thực tế.

Recent Posts

  • React Native Alert trên Android và hai đường hủy hộp thoại
  • Map.set có đưa khóa đã tồn tại xuống cuối không?
  • Android postInvalidate khi custom View cần lên lịch vẽ lại

Categories

  • AI
  • Backend
  • Đánh giá
  • DevOps
  • Flutter
  • Hướng dẫn
  • Lập trình Mobile
  • Phỏng vấn
  • React Native
  • Uncategorized

Weekly Newsletter

  • Buy JNews
  • Support Forum
  • Pre-sale Question
  • Contact Us

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Trang chủ
  • AI
  • Mobile
  • React Native
  • Backend
  • DevOps
  • Hướng dẫn
  • Flutter

© 2026 AE Dev - Blog công nghệ, lập trình và chia sẻ kiến thức IT.

wpDiscuz
0
0
Would love your thoughts, please comment.x
()
x
| Reply