Я хотел бы использовать PopupWindow со следующими типами поведения:
- Он настраивается (имеет интерактивные элементы управления внутри, например, кнопок)
- В представлении "под" popupwindow необходимо правильно использовать штрихи вне всплывающего окна.
- .., но popupwindow должен оставаться на экране даже после нажатия на кнопку
Я нашел кучу сообщений о PopupWindow, но никто из них не задал вопрос, как справиться с такой ситуацией.
Думаю, я пробовал всевозможные комбинации setOutsideTouchable(), setFocusable(), setTouchable(), но я застрял. Popup имеет дело с щелчками на нем правильно, но он всегда убирается, когда касается снаружи.
Мой текущий код:
View.OnTouchListener customPopUpTouchListenr = new View.OnTouchListener(){
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
Log.d("POPUP", "Touch false");
return false;
}
};
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout layout= (LinearLayout)inflater.inflate(R.layout.insert_point_dialog, null);
PopupWindow pw = new PopupWindow(layout,400,200,true);
pw.setOutsideTouchable(true);
pw.setTouchable(true);
pw.setBackgroundDrawable(new BitmapDrawable());
pw.setTouchInterceptor(customPopUpTouchListenr);
pw.showAtLocation(frameLayout, Gravity.BOTTOM, 0, 0);
Моя общая цель - создать плавающее окно, которое ведет себя как "палитра инструментов" в программном обеспечении, таком как gimp: имеет некоторые элементы управления внутри, остается на вершине, пока не закрывается кнопкой "X", и позволяет взаимодействовать с элементами управления снаружи Это.. Может быть, есть лучший способ сделать это, а не PopupWindow? Но я все еще не нашел более подходящего контроля.