我是Android的新手,正在创建Listview弹出菜单。但是我遇到了width
和height
问题。弹出菜单可以占用更多的高度和宽度。 SO中有很多问题,但是没有一个对我有帮助。
为了创建弹出菜单,我尝试了使用方法的。
1] 使用弹出菜单和以下代码: private void showPopupMenu(View view){
Context wrapper = new ContextThemeWrapper(this, R.style.PopupMenu);
PopupMenu popupMenu = new PopupMenu(wrapper,view);
popupMenu.getMenuInflater().inflate(R.menu.popup_menu,popupMenu.getMenu());
popupMenu.show();
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){
@Override
public boolean onMenuItemClick(MenuItem item){
switch (item.getItemId()){
case R.id.install:
Intent intent = new Intent(ViewAllRelationActivity.this,EditRelativeActivity.class);
startActivity(intent);
break;
case R.id.addtowishlist:
break;
}
return false;
}
});
}
它给出了这个输出:
2] 使用 ContextMenu 会显示以下输出:
我们可以在ContextMenu中维护的宽度和高度,但是总是显示在Center not each row of our Listview Data
中。
但是我想要below Image type Popup menu
。 宽度和高度很小。
请为此提供解决方案。
最佳答案
如果使用适配器,则可以在适配器中放入getView(...)方法
imvMore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPopupMenu(act,v);
}
});
放法
private void showPopupMenu(Activity act, View view){
PopupMenu popupMenu = new PopupMenu(act,view);
popupMenu.getMenuInflater().inflate(R.menu.menu_popup, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
}
return true;
}
});
popupMenu.show();
}
在您的适配器类中。
注意:act是Activity,在创建构造函数适配器时必须绑定(bind),例如:
public YourAdapter(Activity act, ArrayList<ItemOfYourModel> data){
this.data = data;
this.act = act;
}
在 Activity 中,您可以编写以下代码:
ArrayList<ItemOfYourModel> listData = new ArrayList<ItemOfYourModel>();
listData.add(new YourItemOfYourModel(...));
YourAdapter adapter = new YourAdapter(this,listData);
关于android - Android ListView中的弹出菜单问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35424746/