Android 在listview适配器中显示ContextMenuForChild-contextMenu的样式
我在安卓8.1上开发应用程序, 我有一个带有listview和contextMenu的活动。列表项由三个元素组成,其中一个元素可单击。因此,对于该元素,不调用contextMenu。对于调用上下文菜单,我使用:Android 在listview适配器中显示ContextMenuForChild-contextMenu的样式,android,listview,Android,Listview,我在安卓8.1上开发应用程序, 我有一个带有listview和contextMenu的活动。列表项由三个元素组成,其中一个元素可单击。因此,对于该元素,不调用contextMenu。对于调用上下文菜单,我使用: imageView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) {
imageView.setOnLongClickListener(new View.OnLongClickListener()
{
@Override
public boolean onLongClick(View v) {
parent.showContextMenuForChild(v);
return true;
}
});
在适配器getView()中
但在本例中,contextMenu样式是模态样式,但在所有应用程序中,样式都是默认的弹出式样式。如何将我的案例中的样式更改为弹出式
注:我认为这个showContextMenuForChild中存在问题,因为若在活动中调用showContextMenuForChild,则contextMenu的样式也将更改为模式样式
panel.setOnTouchListener( new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// save the X,Y coordinates
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
lastTouchDownXY[0] = event.getX();
lastTouchDownXY[1] = event.getY();
}
// let the touch event pass on to whoever needs it
return false;
}
}))
}))
第一个功能检测触摸的坐标,第二个功能设置上下文菜单的位置!谢谢大家
panel.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
float x = lastTouchDownXY[0];
float y = lastTouchDownXY[1];
parent.showContextMenuForChild(v,x ,y);
//parent.showContextMenu(x + v.getPivotX(),y);
}
return true;
}