ListView выходит за пределы popupWindow - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу отобразить простое меню со списком опций, когда долго нажимаю на определенные координаты холста.Читая некоторые сообщения, я понял, что мне нужно использовать PopupWindow , если я хочу отобразить это меню в событие (x, y) координаты.Теперь это мой код:

@Override
public void myLongPress(MotionEvent event) {
    ListView popupView = new ListView(anotherObject.getContext());

    String[] stringArray = new String[] { "Bright Mode", "Normal Mode" };
    ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(anotherObject.getContext(), android.R.layout.simple_list_item_1, stringArray);
    popupView.setAdapter(modeAdapter);

    int width = 500;
    int height = 100;
    boolean focusable = true;
    final PopupWindow popupWindow = new PopupWindow(popupView, width, height, focusable);
    popupView.setBackgroundColor(Color.LTGRAY);
    /*
    popupView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            popupWindow.dismiss();
            return true;
        }
    });
    */

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        popupWindow.setElevation(20);
    }

    popupWindow.showAtLocation(anotherObject.getView() /*this is a random view*/, Gravity.NO_GRAVITY, (int)event.getX(), (int)event.getY());
}

Меню отображается в правильном месте, но список выходит за его пределы (500x100).Я увидел это, когда попытался прокрутить список:

see my popupWindow

Где ошибка?Можете ли вы предложить мне лучшее решение для отображения аналогичного меню в определенной точке (не связанной с видом)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...