2013-10-03 18 views
7

Devo mostrare popup. L'ho fatto ma non riesco a impostare la posizione di questo popup. Devo impostare il popup sotto l'etichetta degli amici.Mostra per impostare la posizione del popup?

enter image description here.

Codice:

_spinner = (Spinner) view.findViewById(R.id.group_spinner); 
_groupAdaptor = new ArrayAdapter(getActivity(), 
       android.R.layout.simple_spinner_dropdown_item, _itemGroupList); 
_spinner.setAdapter(_groupAdaptor); 
_spinner.setOnItemSelectedListener(this); 

E al clic che io chiamo metodo come:

_spinner.performClick(); 
+0

Puoi pubblicare il tuo codice di layout? – GrIsHu

+0

Puoi usare una finestra di dialogo personalizzata o la vuoi nella casella di selezione? –

risposta

1

Ho risolto il problema con alcune correzioni nel layout. Stavo facendo un errore stupido, la vista Spinner non era allineata correttamente.

<TextView 
       android:id="@+id/group_text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:text="@string/label_friends" 
       android:textColor="@android:color/white" /> 

      <ImageView 
       android:id="@+id/dropListImageview" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/group_text" 
       android:layout_centerHorizontal="true" 
       android:layout_marginTop="4dip" 
       android:background="@drawable/droplist" /> 

      <Spinner 
       android:id="@+id/group_spinner" 
       android:layout_width="150dip" 
       android:layout_height="20dip" 
       android:layout_centerHorizontal="true" 
       android:layout_below="@+id/group_text" 
       android:visibility="invisible" 
       /> 
+0

Qual è la soluzione esatta qui? –

0

Utilizzare questo il mio codice di lavoro ..

Rect r = locateView(v);  
final PopupWindow popup = new PopupWindow(getActivity()); 
      popup.setAnimationStyle(R.style.animation); 
      popup.setContentView(layout); 
      popup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); 
      popup.setWidth(getActivity().getWindowManager().getDefaultDisplay().getWidth()/2); 
      popup.setFocusable(true); 
      popup.setBackgroundDrawable(new BitmapDrawable()); 
      popup.showAtLocation(layout, Gravity.TOP | Gravity.LEFT, r.right, r.bottom); 


public static Rect locateView(View v) { 
     int[] loc_int = new int[2]; 
     if (v == null) 
      return null; 
     try { 
      v.getLocationOnScreen(loc_int); 
     } catch (NullPointerException npe) { 
      return null; 
     } 
     Rect location = new Rect(); 
     location.left = loc_int[0]; 
     location.top = loc_int[1]; 
     location.right = loc_int[0] + v.getWidth(); 
     location.bottom = loc_int[1] + v.getHeight(); 
     return location; 
    } 
5

Ho anche affrontato lo stesso problema in la mia applicazione e ho trovato la soluzione usando spinier. Quello che devi fare solo utente spinier menu a discesa in sul clic di amici e mostrare le opzioni in quel menu. Ti aiuterà.

+2

Perché copiare incolla la risposta dell'utente2119025? – GrIsHu

+0

Contrassegna questa risposta @GrIsHu – Sameer

+1

In realtà è un mio errore, cioè il mio id che è stato creato da un errore che cancellerò quella risposta da quell'id. –

Problemi correlati