Android 在ListView中实现以下弹出菜单的想法
当我点击Android 在ListView中实现以下弹出菜单的想法,android,listview,android-listview,Android,Listview,Android Listview,当我点击列表视图行中的3点区域时,我想要弹出菜单 无法满足我的需要,因为在长按过程中,ListView行的任何区域都会发生这种情况 我想知道 如何在ListView行中创建一个3点外观的用户界面 即使对于Android 2.3,如何拥有弹出菜单 您可以使用ImageView显示带有3个点的图像 弹出菜单有两种方式 a) 使用一些布局并使其可见/消失 b) 使用PopupWindow 下面是PopupWindow的示例代码 PopupWindow popupWindow = new PopupW
列表视图
行中的3点区域时,我想要弹出菜单
无法满足我的需要,因为在长按过程中,ListView
行的任何区域都会发生这种情况
我想知道
ListView
行中创建一个3点外观的用户界面ImageView
显示带有3个点的图像PopupWindow
PopupWindow popupWindow = new PopupWindow(context);
View popUpView = View.inflate(activity, linearlayout, null);
popUpView.setBackgroundColor(Color.TRANSPARENT);
mpopup.setContentView(popUpView);
mpopup.setHeight(LayoutParams.WRAP_CONTENT);
mpopup.setWidth(LayoutParams.WRAP_CONTENT);
mpopup.setFocusable(true);
mpopup.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.transperent));
mpopup.setOutsideTouchable(true);
mpopup.setAnimationStyle(R.anim.slide_out_up);
mpopup.showAtLocation(popUpView, Gravity.TOP, activity.getResources()
.getInteger(R.integer.log_out_popup_x), activity.getResources()
.getInteger(R.integer.log_out_popup_y));
也可以在单击3个点时显示对话框。 PopupWindow需要找到在屏幕上显示的位置。
显示一个对话框可以识别您选择的巫婆克隆。我知道有点晚了,您可能已经找到了解决方案,但我刚刚遇到了您的问题,这是我的解决方案 下面是适配器类的getView方法的代码
@Override
public View getView(int p, View convertView, ViewGroup parent)
{
final ViewHolder holder;
if (convertView == null)
{
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.d_item, null);
holder.dHeading = (TextView) convertView.findViewById(R.id.txt);
holder.ds = (TextView) convertView.findViewById(R.id.txt1);
holder.options = (ImageView)convertView.findViewById(R.id.dPopupMenu);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.dHeading.setText(DList.get(p).getDHeading());
holder.ds.setText(DList.get(p).getDs());
holder.options.setOnClickListener( new OnClickListener()
{
@Override
public void onClick(View v)
{
final PopupMenu popmenu = new PopupMenu(context, holder.options);
popmenu.getMenuInflater().inflate(R.menu.dua_popup_menu, popmenu.getMenu());
popmenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener()
{
public boolean onMenuItemClick(MenuItem item)
{
Toast.makeText(context, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
popmenu.show();
}
});
return convertView;
}
如何设置浮动菜单的位置,使其刚好显示在3点以下?如何用fadein动画如play google来显示它?@MustafaGüven你可以通过
view.getLocationOnScreen()
找到视图的位置(3个点),然后将layoutparams设置为弹出窗口。这里的mpopup和linearlayout是什么?我们如何减少弹出菜单的宽度和高度,菜单项太大了。@Abdul Rahman