2013-10-03 3 views
7

Мне нужно показать всплывающее окно. Я сделал это, но я не могу установить позицию этого всплывающего окна. Мне нужно установить всплывающее окно под ярлыком друзей.Показать, чтобы установить положение всплывающего окна?

enter image description here.

Код:

_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); 

И по щелчку я звоню метод, как:

_spinner.performClick(); 
+0

Можете ли вы разместить свой код макета? – GrIsHu

+0

Можете ли вы использовать пользовательский диалог или хотите его использовать в прядильщике? –

ответ

1

Я исправил свою проблему с помощью некоторой коррекции в макете. Я делал глупую ошибку, представление Spinner не было правильно выровнено.

<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

Какое точное решение? –

0

Используйте это мой рабочий код ..

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

Я также столкнулся с той же проблемой в мое приложение и нашел решение, используя spinier. Что вы должны сделать, просто выпадающий список пользователя, который вы найдете в списке друзей, и покажите свои параметры в этом меню. Это поможет вам.

+2

Зачем копировать пасту user2119025? – GrIsHu

+0

Отметьте этот ответ @GrIsHu – Sameer

+1

Собственно, его ошибка, то есть мой собственный идентификатор, который был создан ошибкой, я удалю этот ответ из этого идентификатора. –

Смежные вопросы