Evitando o afastamento do PopupWindow após tocar fora

Eu gostaria de usar um PopupWindow com os seguintes comportamentos / recursos:

É focável (tem controles interativos dentro de botões, por exemplo)A janela pop-up Visualizar 'sob' precisa consumir os toques fora do pop-up corretamente.. mas a janela popup tem que ficar na tela mesmo depois de clicar fora

Eu encontrei um monte de posts sobre PopupWindow, mas nenhum deles perguntou como lidar com tal situação.

Eu acho que tentei todas as combinações possíveis de setOutsideTouchable (), setFocusable (), setTouchable (), mas estou preso. O pop-up lida com cliques corretamente, mas é descartado sempre ao tocar fora.

Meu código atual é:

<code>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);
</code>

Meu objetivo geral é criar uma janela flutuante que se comporte como uma 'paleta de ferramentas' em softwares como o gimp: possui alguns controles dentro, fica no topo até ser fechada pelo botão 'X' e permite interagir com controles externos. Talvez haja uma maneira melhor de fazer isso, não uma PopupWindow? Mas ainda não encontrei um controle mais adequado.

questionAnswers(6)

yourAnswerToTheQuestion