【问题标题】:Android ListView onItemClick show Popup on exact positionAndroid ListView onItemClick 在确切位置显示弹出窗口
【发布时间】:2020-09-14 10:02:05
【问题描述】:

我有一个PopupWindow,当我在ListView 上单击Item 时,它会显示为下拉列表:

@Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            View v = getLayoutInflater().inflate(R.layout.popup_click_menu, null);
            final PopupWindow mypopupWindow = new PopupWindow(v,300, RelativeLayout.LayoutParams.WRAP_CONTENT, true);
            mypopupWindow.showAsDropDown(view, -153, 0);
        }

结果是这样的:

我的问题是:我想要一个动态位置的弹出窗口。所以如果我点击Item 的中间,那么它应该显示在中间。我该怎么做?

【问题讨论】:

    标签: java dynamic android-listview position popupwindow


    【解决方案1】:

    你可以通过TouchListener解决这个问题:

    list.setOnTouchListener(new OnTouchListener() {
                public boolean onTouch(View view, MotionEvent event) {
                    positionX = (int) event.getX();
    
                    return false; // not consumed; forward to onClick
                }
            });
    

    然后你就有了确切的 x 位置,你可以将PopupWindow 移动onItemClick

    mypopupWindow.showAsDropDown(view, positionX, 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      相关资源
      最近更新 更多