显示设置弹出窗口的位置?

时间:2013-10-03 12:29:35

标签: android android-spinner

我必须显示弹出窗口。我已经完成了,但我无法设置此弹出窗口的位置。 我必须在朋友标签的下方设置弹出窗口。

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

3 个答案:

答案 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;
    }

答案 1 :(得分:0)

我通过布局中的一些修正解决了我的问题。 我犯了一个愚蠢的错误,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"
               />

答案 2 :(得分:-1)

我在应用程序中也遇到了同样的问题,并通过使用spinier找到了解决方案。您只需单击朋友,然后在该菜单中显示您的选项,您只需执行用户旋转下拉列表即可。它会对你有所帮助。