Android PopupWindow avec tooltip Arrow

j'ai vu beaucoup de questions sur la suppression de la bordure D'un PopupWindow en passant null ou new Drawable() à setBackgroundDrawable(). Je vais avoir le problème inverse. Je veux une bordure autour de mon PopupWindow, de préférence avec une flèche pointant vers mon ancre. Actuellement, mon PopupWindow n'a pas de Frontière. J'ai essayé d'ajuster les marges, le fond dans le xml, la largeur et la hauteur de la mise en page, listview, et les lignes de listview en vain. Quelqu'un peut-il svp m'aider à avoir une frontière et une image sur le dessus? J'essaie de rester avec le SDK androïde avec ça.

popup_menu_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"    
    android:orientation="vertical" >

    <com.github.jeremiemartinez.refreshlistview.RefreshListView
        android:id="@+id/popup_menu_list_listview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/color_white" />

</LinearLayout>

Java

private void displayPopupMenu() {
        LayoutInflater layoutInflater = getLayoutInflater();
        View popupView = layoutInflater.inflate(R.layout.popup_menu_list, null);        
        final PopupWindow popupWindow = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);       
        RefreshListView myListView = (RefreshListView) popupView.findViewById(R.id.popup_menu_list_listview);       
        mAdapter = new myAdapter(this, getAdapterData());       
        myListView.setAdapter(mAdapter);            
        popupWindow.showAsDropDown(mMyAnchor);      
    }

j'ai juste pris ces exemples, mais je veux quelque chose comme ça où le popup pointe vers l'ancre:

enter image description here

Mais j'obtiens quelque chose comme ceci:

enter image description here

42
demandé sur Lee 2014-01-10 01:25:26

5 réponses

il y a beaucoup de bibliothèques et de codes disponibles sur le marché. Les liens sont donnés ci-dessous:

voici le schéma D'interface utilisateur à action rapide. Jetez un oeil à:

  1. QuickAction-Boîte De Dialogue

  2. Rapide-action-patron-en-Android

  3. Chrome Style Help Popups

une autre alternative serait "super-info-bulles":

https://github.com/nhaarman/supertooltips

Voici une démo de:

https://play.google.com/store/apps/details?id=com.haarman.supertooltips

de ce premier lien / exemple ressemble à l'image ci-dessous. Ce ne sont que des démos, mais vous pouvez personnaliser selon vos besoins.

enter image description here

54
répondu M D 2017-03-31 03:30:40

si vous cherchez une bibliothèque simple, j'en ai créé une basée sur PopupWindow.

https://github.com/douglasjunior/android-simple-tooltip

Demo

7
répondu Douglas Nassif Roma Junior 2016-05-12 16:20:20

Vous pouvez simplement utiliser PopupWindow avec vue avec fond vectoriel:

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="20dp"
    android:viewportHeight="162"
    android:viewportWidth="196">
    <path
        android:fillColor="@color/black"
        android:pathData="M0 26.9917C0 12.0846 12.09433 0 26.99583 0L169.0042 0C183.9136 0 196 12.09104 196 26.9917L196 100.0083C196 114.9154 183.9057 127 169.0042 127L124 127L98.5 162L73 127L26.99583 127C12.08644 127 0 114.909 0 100.0083L0 26.9917" />
</vector>
1
répondu Andoctorey 2017-04-28 16:19:21

vous pouvez créer votre propre tooltip personnalisé en utilisant xml seulement. J'ai écrit une démo https://github.com/nidhinek/android-tooltip sur la base de PopupWindow

0
répondu Nidhin 2017-03-13 04:21:25

une réponse plus détaillée peut être trouvée à https://github.com/florent37/ViewTooltip qui vous permet de contrôler beaucoup de choses, y compris la direction de votre vue. Une discussion et quelques méthodes peuvent être trouvées ici.

Edit: Voici un exemple gif: enter image description here

0
répondu Jacolack 2018-08-15 02:00:01