仿QQ彈出複製操作框

popupwindow空間實現
popupWindow.showAtLocation需要傳遞一個view過去

  private void showPopupWindow(final EMMessage message, View view) {

        // 一個自定義的佈局,作爲顯示的內容
        View contentView = LayoutInflater.from(getContext()).inflate(
                R.layout.pop_window, null);
        // 設置按鈕的點擊事件
        TextView button = (TextView) contentView.findViewById(R.id.pop_text);
        final PopupWindow popupWindow = new PopupWindow(contentView,
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
        popupWindow.setTouchable(true);
        // 
        popupWindow.setBackgroundDrawable(getResources().getDrawable(
                R.drawable.radius_background_chat_copy));
        // 設置好參數之後再show
        int[] location = new int[2];
        view.getLocationOnScreen(location);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(getContext(), "button is pressed",
                        Toast.LENGTH_SHORT).show();
                if (message.getType().name().equals("TXT")) {
                    ClipboardManager clipboardManager = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
                    String temp = message.getBody().toString();
                    String temp1[] = temp.split(":");
                    String clipTemp = temp1[1].substring(1, temp1[1].length() - 1);
                    clipboardManager.setText(clipTemp);
                    Toast.makeText(getContext(), "已將複製到剪貼板", Toast.LENGTH_SHORT).show();
                }
                popupWindow.dismiss();
            }
        });
        popupWindow.showAtLocation(view, Gravity.NO_GRAVITY, location[0], location[1] - popupWindow.getHeight() - UtilsTool.dip2px(getContext(), 25));

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章