Android 在listview适配器中显示ContextMenuForChild-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) {

我在安卓8.1上开发应用程序, 我有一个带有listview和contextMenu的活动。列表项由三个元素组成,其中一个元素可单击。因此,对于该元素,不调用contextMenu。对于调用上下文菜单,我使用:

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;
}