3

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

在此处输入图像描述.

代码:

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

3 回答 3

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"
               />
于 2013-10-03T12:48:45.053 回答
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;
    }
于 2013-10-03T12:40:36.327 回答
-1

我在我的应用程序中也遇到了同样的问题,并通过使用 spinier 找到了解决方案。您需要做的只是用户点击朋友的下拉列表并在该菜单中显示您的选项。它会帮助你。

于 2013-10-03T12:40:47.370 回答