Popup menu được tùy chỉnh
lại sẽ hiển thị trực quan và sinh động hơn nhiều so với mặc định của hđh. Xem
hình demo bên dưới
Sau khi tạo project tiến
hình copy các resource được đăng trong bài như hình bên dưới.
Giải thích một số
thành phần trong resource
horiz_separator.xml làm vết ngăn giữa các
menu item trong menu popup hiển thị theo chiều ngang.
action_item_horizontal.xml layout thể hiện cho
môt menu item theo chiều ngang của popup menu. Tương tự action_item_vertical.xml thể hiện menu item theo chiều đứng của
popup menu. Mỗi item chứa một image icon và một text.
popup_horizontal.xml và popup_vertical.xml là phần nền dùng chứa
các menu item, lần lượt hiển thị theo chiều ngang và đứng.
arrow_down.png
và arrow_up.png là các dấu mũi tên lên xuống, sẽ được hiển thị tương ứng với kiểu
menu ngang hoặc đứng.
com.popupmenu gói chứa phần quản lý
popup menu. Chúng ta sẽ sử dụng nó để hiện một popup menu cụ thể như sau.
public void showMenu(View
view){
ActionItem item1 = new ActionItem(0, "Item 1",
getResources().getDrawable(R.drawable.ic_launcher));
ActionItem item2 = new ActionItem(0, "Item 2",
getResources().getDrawable(R.drawable.ic_launcher));
ActionItem item3 = new ActionItem(0, "Item 3",
getResources().getDrawable(R.drawable.ic_launcher));
final QuickAction
mQuickAction = new QuickAction(this, 0);
mQuickAction.addActionItem(item1);
mQuickAction.addActionItem(item2);
mQuickAction.addActionItem(item3);
//bat su kien
khi click vao menu item
mQuickAction.setOnActionItemClickListener(new
QuickAction.OnActionItemClickListener() {
public void
onItemClick(QuickAction source, int pos, int actionId) {
if(pos == 0)
Toast.makeText(MainActivity.this, "Item 1
selected", Toast.LENGTH_SHORT).show();
if(pos == 1)
Toast.makeText(MainActivity.this, "Item 2
selected", Toast.LENGTH_SHORT).show();
if(pos == 2)
Toast.makeText(MainActivity.this, "Item 3
selected", Toast.LENGTH_SHORT).show();
}
});
//hien thi
popip menu tai vi tri cua view da click vao
mQuickAction.show(view);
}
Thay
final QuickAction
mQuickAction = new QuickAction(this, 0);
thành
final QuickAction
mQuickAction = new QuickAction(this, 1);
để hiển thị popup menu
theo chiều thẳng đứng
https://www.dropbox.com/s/b6nmzotr898dkpf/DemoPopupMenu.apk Apk demo file
|