Chia layout folder ra thành nhiều sub-folder trong Android

Tam H. Doan
Viet Android Developers
3 min readJul 28, 2019

Originally published at http://www.iceteaviet.com on December 2nd, 2016

Đã lâu rồi mình không viết blog, phần vì cũng lười, phần vì vừa phải làm final project tại CoderSchool. Hôm nay vừa internal demo xong, mình ngồi refactor lại code thì thấy như sau

Nhìn vào đống item ở thư mục ‘res/layout’ kìa!

Horrible, right?

Lang thang search trên mạng cũng thấy nhiều người có vấn đề giống như mình, như article ở StackOverflow.

Thư mục ‘res/layout’ của bạn quá lớn? khó kiểm soát? khó tìm kiếm? Hãy tưởng tượng trong lúc đang chạy deadline đầu óc rối bời mà tìm hoài không thấy cái file layout XML cần sửa nằm ở đâu vì đơn giản là bạn không nhớ cái layout ở màn hình đấy tên là gì nên không thể search được.

Ok, dài dòng đủ rồi, mình sẽ hướng dẫn ngay đây.

Bước 1

Đầu tiên tạo folder tổng “layouts”.

Right-click vào thư mục ‘res’ -> New -> Directory -> gõ “layouts” (nhớ là có ‘s’ nhé, không là bị trùng đấy)

Bước 2

Tạo các Res Folder tương ứng với các category mà bạn muốn làm.

Chọn ‘layouts’ folder vừa tạo. Right-click -> New -> Folder -> Res Folder

Đặt tên cho Res Folder theo category mà bạn muốn làm.

Ví dụ: ở một chương trình chat bạn sẽ có các category là “home”, “profile” và “chat”. Mình sẽ đặt tên nó là ‘chat’ nha.

Khi vừa add xong 1 folder, đợi 1 lát để Gradle sync cấu trúc chương trình. Sau đó bạn sẽ thấy một folder ‘chat’ màu vàng tương ứng với folder ‘res’ nhưng lại không nằm trong folder ‘layouts’.

Thực chất nó vẫn nằm trong ‘layouts’ tuy nhiên vì minh chỉ mới add một folder duy nhất là ‘chat’ nên nó chỉ show ‘chat’ ra thôi.

Tiếp tục tạo thêm một Res Folder mới tên là ‘home’ thì cấu trúc cây sẽ bắt đầu hiện ra đúng theo những gì bạn mong đợi: ‘home’‘chat’ nằm trong ‘layouts’.

Tới đây bạn đã chia thành công thư mục ra thành các category riêng biệt rồi.

Bước 3

Thêm folder ‘layout’ (không có ‘s’) vào từng sub-folder tương ứng với các category cần thiết và sử dụng chúng bình thường như folder ‘res/layout’ truyền thống.

Bạn cũng có thể thêm các folder ‘menu’, ‘drawable’, ‘anim’,… vào từng Res Folder nha.

Bước 4

Build thử chương trình sẽ thấy trong tag ‘android’ của file ‘app/build.gradle’ xuất hiện đoạn lệnh sau

Đoạn lệnh này tương ứng cho việc add 2 category là 2 Res Folder ‘home’‘chat’. Nếu không tìm thấy các bạn có thể thêm bằng tay vào tag ‘android’ nha.

Chúc các bạn thành công và quản lý tốt source code của mình. Bởi vì lập trình còn là một quá trình tạo ra sản phẩm cùng với team nên code style là rất quan trọng. Và những thứ như vậy thường không được dạy ở trường.

Happy coding~

--

--