Android

Custom Toast trong Android

Giới thiệu

Chắc hẳn khi mới học lập trình các bạn rất quen thuộc với khái niệm Toast dùng để hiển thị thông báo. Toast trong Android sử dụng rất dễ dàng bạn chỉ cần sử dụng một dòng code thôi là đủ. Tuy nhiên đó là chúng ta sử dụng Toast mặc định của Android. Còn nếu Toast có View phức tạp nhiều hơn thì sao lúc đó thì chúng ta sẽ nghĩ ngay đến Custom Toast.

Sử dụng Toast mặc định của Android

Trong Android để hiển thị Toast bạn chỉ đơn giản gõ một dòng code đơn giản như dưới đây:

Phương thức makeText dùng để tạo Toast, phương thức này trả về đối tượng Toast

Các đối số trong phương thức có ý nghĩa:

  • Đối số thứ nhất: Là một context
  • Đối số thứ hai: Là một đoạn text bạn muốn hiển thị
  • Đối số thứ ba: Duration hiển thị Toast. Chỉ cho phép truyền vào 2 giá trị là LENGTH_SHORT (hiển thị toast trong thời gian ngắn) và LENGTH_LONG (hiển thị Toast trong thời gian dài hơn).

Phương thức show dùng để hiển thị Toast.

Các bạn cũng có thể set vị trí hiển thị Toast trên màn hình Android bằng phương thức setGravity và setMargin.

Custom Toast trong Android

Custom Toast là việc mà chúng ta bỏ đi view hiển thị text của Toast mặc định trong Android và thay thế bằng một view mới của chúng ta.

Chúng ta custom Toast như sau:

Tạo view bằng file xml hoặc java. Ở đây tôi tạo file toast_layout.xml trong thư mục layout của project

View này gồm một ImageView hiển thị bên trái và một TextView hiển thị thông báo nằm ở bên phải ImageView.

Background của view tôi drawable border_toast_layout dùng để bo tròn 4 góc của View và tạo gradient background cho View. Nếu bạn nào chứ có kiến thức về Drawable có thể xem lại bài viết:

Drawable trong Android

File border_toast_layout.xml

Tiếp theo chúng ta sẽ tạo View ánh xạ từ toast_layout.xml thông qua class LayoutInflater:

Có thể find ra các view con trong viewToast và set giá trị cho các view nó.

Việc bây h là chúng ta tạo đối tượng Toast và sử dụng phương thức setView để set view của chúng ta cho Toast.

Những dòng tôi comment ở trên là những dòng code dùng để set vị trí hiển thị của Toast.

Và chúng ta sẽ thấy một Custom Toast rất đẹp như trong video Demo:

Source code MasterToastInAndroid

Những điều nên nhớ khi sử dụng Toast

Khi sử dụng Toast có một số lưu ý mà chúng ta nên chú ý:

  • Context của Toast không được truyền vào null.
  • Chỉ được show Toast trong UI Thread. Nếu bạn cố tình show Toast trong những Thread sẽ ném ra ngoại lệ và crash chương trình.

Kết luận

Dù là một kiến thức nhỏ nhặt nhưng các bạn hãy tìm hiểu sâu về nó để hiểu bản chất thay vì chỉ lướt qua. Các bạn thấy rằng vì sao chúng ta không add view vào Activity mà vẫn có view hiển thị lên màn hình thì do Toast trong Android không thuộc sử quản lý của Activity mà nó thuộc sự quản lý của WindowManager.

Nếu tuổi trẻ không phát ra ánh sáng rực rỡ, mọi thứ sẽ mất đi sức hút.

Walpole (Anh)

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.