Il modo migliore per creare popover view
simile è utilizzando PopupWindow
, poiché è possibile posizionare PopUpWindow
in una qualsiasi posizione della vista specifica (o sul centro/alto/basso dello schermo). Puoi anche raggiungere la stessa interfaccia utente con DialogFragment
, ma non puoi posizionarti in una posizione specifica.
Ho un codice di lavoro completo qui https://gist.github.com/libinbensin/67fcc43a7344758390c3
Fase 1: Crea il tuo layout personalizzato, per esempio, come Facebook ha un suo Header TextView
con un ListView
e EditText
.
Fase 2: impostare il layout della PopupWindow
Gonfiare il layout per impostare
LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View inflatedView = layoutInflater.inflate(R.layout.fb_popup_layout, null,false);
Questo Layout
ha un ListView
, in modo da trovare la ListView
nel layout e riempire i dati . si può avere il proprio punto di vista qui
ListView listView = (ListView)inflatedView.findViewById(R.id.commentsListView);
listView.setAdapter(new ArrayAdapter<String>(TryMeActivity.this,
R.layout.fb_comments_list_item, android.R.id.text1,contactsList));
Ora, creare un'istanza di PopupWindow
con particolare altezza e larghezza. Preferisco impostare la dimensione dipende dal dispositivo.
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
popWindow = new PopupWindow(inflatedView, size.x - 50,size.y - 500, true);
Impostare la focusability
della finestra pop-up.
popWindow.setFocusable(true);
Fai fuori tangibile to dismiss the popup window when touched outside
l'area pop-up
popWindow.setOutsideTouchable(true);
Ora, impostare uno sfondo per la PopupWindow
con un disegnabile. Il drawable ha rectangle shape
con corner radius
.
popWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.fb_popup_bg));
Infine. mostra PopupWindow
nel luogo richiesto. L'ho fatta mostrare al bottom
dello schermo con una certa X and Y position
popWindow.showAtLocation(v, Gravity.BOTTOM, 0,150); // 0 - X postion and 150 - Y position
È inoltre possibile impostare un Animation
da utilizzare quando il compare e PopUpWindow
scompare
popWindow.setAnimationStyle(R.anim.animation); // call this before showing the popup
Sono di fronte problema simile, creazione della vista dei dettagli dei commenti e trascinamento verso destra o verso il basso per chiudere e aprire la vista dei Mi piace sulla vista dei commenti. Puoi condividere il tuo codice come lo hai implementato per view e view group in quanto sembra non possa essere raggiunto tramite finestre di dialogo o popup. – YasirSE
Questa è una conversazione interessante che hai scelto di screencap. – Mike