android.widget.PopupWindow#isShowing ( )源码实例Demo

下面列出了android.widget.PopupWindow#isShowing ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

public void onClick(int resId, String url, PopupWindow popupWindow) {
    mView.closeMenu();

    if (R.id.toolbar_btn_close == resId) {
        mView.close();
    } else if (R.id.toolbar_btn_more == resId) {
        if (popupWindow.isShowing()) {
            mView.closeMenu();
        } else {
            mView.openMenu();
        }
    } else if (R.id.popup_menu_btn_back == resId) {
        mView.goBack();
    } else if (R.id.popup_menu_btn_forward == resId) {
        mView.goFoward();
    } else if (R.id.popup_menu_btn_refresh == resId) {
        mView.onRefresh();
    } else if (R.id.popup_menu_btn_copy_link == resId) {
        mView.copyLink(url);
        mView.showToast(makeToast(mContext.getString(R.string.message_copy_to_clipboard)));
    } else if (R.id.popup_menu_btn_open_with_other_browser == resId) {
        mView.openBrowser(Uri.parse(url));
    } else if (R.id.popup_menu_btn_share == resId) {
        mView.openShare(url);
    }
}
 
源代码2 项目: connectivity-samples   文件: JUIHelper.java
public void resumePopupWindow(NativeActivity act, final PopupWindow p) {
    activity_ = act;
    if(p.isShowing()) {
        Log.i("JUIHelper::", "ResumePopupWindow is to about to show");
    }
    return;
}
 
源代码3 项目: DevUtils   文件: DialogUtils.java
/**
 * 关闭 PopupWindow
 * @param popupWindow {@link PopupWindow}
 * @return {@code true} success, {@code false} fail
 */
public static boolean closePopupWindow(final PopupWindow popupWindow) {
    if (popupWindow != null && popupWindow.isShowing()) {
        try {
            popupWindow.dismiss();
            return true;
        } catch (Exception e) {
            LogPrintUtils.eTag(TAG, e, "closePopupWindow");
        }
    }
    return false;
}
 
源代码4 项目: YCDialog   文件: TestActivity.java
private void showPopupWindow() {
    //创建对象
    PopupWindow popupWindow = new PopupWindow(this);
    View inflate = LayoutInflater.from(this).inflate(R.layout.view_pop_custom, null);
    //设置view布局
    popupWindow.setContentView(inflate);
    popupWindow.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
    popupWindow.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
    //设置动画的方法
    popupWindow.setAnimationStyle(R.style.BottomDialog);
    //设置PopUpWindow的焦点,设置为true之后,PopupWindow内容区域,才可以响应点击事件
    popupWindow.setTouchable(true);
    //设置背景透明
    popupWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));
    //点击空白处的时候让PopupWindow消失
    popupWindow.setOutsideTouchable(true);
    // true时,点击返回键先消失 PopupWindow
    // 但是设置为true时setOutsideTouchable,setTouchable方法就失效了(点击外部不消失,内容区域也不响应事件)
    // false时PopupWindow不处理返回键,默认是false
    popupWindow.setFocusable(false);
    //设置dismiss事件
    popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
        @Override
        public void onDismiss() {

        }
    });
    boolean showing = popupWindow.isShowing();
    if (!showing){
        //show,并且可以设置位置
        popupWindow.showAsDropDown(mTv1);
    }
    //popupWindow.dismiss();
}
 
@Override
public void onBackPressed(PopupWindow menu, WebView webView) {
    if (menu.isShowing()) {
        mView.closeMenu();
    } else if (webView.canGoBack()) {
        mView.goBack();
    } else {
        mView.close();
    }
}
 
源代码6 项目: android_9.0.0_r45   文件: KeyboardView.java
private void showKey(final int keyIndex) {
    final PopupWindow previewPopup = mPreviewPopup;
    final Key[] keys = mKeys;
    if (keyIndex < 0 || keyIndex >= mKeys.length) return;
    Key key = keys[keyIndex];
    if (key.icon != null) {
        mPreviewText.setCompoundDrawables(null, null, null,
                key.iconPreview != null ? key.iconPreview : key.icon);
        mPreviewText.setText(null);
    } else {
        mPreviewText.setCompoundDrawables(null, null, null, null);
        mPreviewText.setText(getPreviewText(key));
        if (key.label.length() > 1 && key.codes.length < 2) {
            mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mKeyTextSize);
            mPreviewText.setTypeface(Typeface.DEFAULT_BOLD);
        } else {
            mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSizeLarge);
            mPreviewText.setTypeface(Typeface.DEFAULT);
        }
    }
    mPreviewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
    int popupWidth = Math.max(mPreviewText.getMeasuredWidth(), key.width
            + mPreviewText.getPaddingLeft() + mPreviewText.getPaddingRight());
    final int popupHeight = mPreviewHeight;
    LayoutParams lp = mPreviewText.getLayoutParams();
    if (lp != null) {
        lp.width = popupWidth;
        lp.height = popupHeight;
    }
    if (!mPreviewCentered) {
        mPopupPreviewX = key.x - mPreviewText.getPaddingLeft() + mPaddingLeft;
        mPopupPreviewY = key.y - popupHeight + mPreviewOffset;
    } else {
        // TODO: Fix this if centering is brought back
        mPopupPreviewX = 160 - mPreviewText.getMeasuredWidth() / 2;
        mPopupPreviewY = - mPreviewText.getMeasuredHeight();
    }
    mHandler.removeMessages(MSG_REMOVE_PREVIEW);
    getLocationInWindow(mCoordinates);
    mCoordinates[0] += mMiniKeyboardOffsetX; // Offset may be zero
    mCoordinates[1] += mMiniKeyboardOffsetY; // Offset may be zero

    // Set the preview background state
    mPreviewText.getBackground().setState(
            key.popupResId != 0 ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
    mPopupPreviewX += mCoordinates[0];
    mPopupPreviewY += mCoordinates[1];

    // If the popup cannot be shown above the key, put it on the side
    getLocationOnScreen(mCoordinates);
    if (mPopupPreviewY + mCoordinates[1] < 0) {
        // If the key you're pressing is on the left side of the keyboard, show the popup on
        // the right, offset by enough to see at least one key to the left/right.
        if (key.x + key.width <= getWidth() / 2) {
            mPopupPreviewX += (int) (key.width * 2.5);
        } else {
            mPopupPreviewX -= (int) (key.width * 2.5);
        }
        mPopupPreviewY += popupHeight;
    }

    if (previewPopup.isShowing()) {
        previewPopup.update(mPopupPreviewX, mPopupPreviewY,
                popupWidth, popupHeight);
    } else {
        previewPopup.setWidth(popupWidth);
        previewPopup.setHeight(popupHeight);
        previewPopup.showAtLocation(mPopupParent, Gravity.NO_GRAVITY,
                mPopupPreviewX, mPopupPreviewY);
    }
    mPreviewText.setVisibility(VISIBLE);
}
 
源代码7 项目: java-n-IDE-for-Android   文件: MyKeyboardView.java
private void showPreview(int keyIndex) {
        int oldKeyIndex = mCurrentKeyIndex;
        final PopupWindow previewPopup = mPreviewPopup;

        mCurrentKeyIndex = keyIndex;
        // Release the old key and press the new key
        final Key[] keys = mKeys;
        if (oldKeyIndex != mCurrentKeyIndex) {
            if (oldKeyIndex != NOT_A_KEY && keys.length > oldKeyIndex) {
                Key oldKey = keys[oldKeyIndex];
                oldKey.onReleased(mCurrentKeyIndex == NOT_A_KEY);
                invalidateKey(oldKeyIndex);
//                sendAccessibilityEventForUnicodeCharacter(AccessibilityEvent.TYPE_VIEW_HOVER_EXIT,oldKey.codes[0]);
            }
            if (mCurrentKeyIndex != NOT_A_KEY && keys.length > mCurrentKeyIndex) {
                Key newKey = keys[mCurrentKeyIndex];
                newKey.onPressed();
                invalidateKey(mCurrentKeyIndex);
//                sendAccessibilityEventForUnicodeCharacter(AccessibilityEvent.TYPE_VIEW_HOVER_ENTER,newKey.codes[0]);
            }
        }
        // If key changed and preview is on ...
        if (oldKeyIndex != mCurrentKeyIndex && mShowPreview) {
            mHandler.removeMessages(MSG_SHOW_PREVIEW);
            if (previewPopup.isShowing()) {
                if (keyIndex == NOT_A_KEY) {
                    mHandler.sendMessageDelayed(mHandler
                                    .obtainMessage(MSG_REMOVE_PREVIEW),
                            DELAY_AFTER_PREVIEW);
                }
            }
            if (keyIndex != NOT_A_KEY) {
                if (previewPopup.isShowing() && mPreviewText.getVisibility() == VISIBLE) {
                    // Show right away, if it's already visible and finger is moving around
                    showKey(keyIndex);
                } else {
                    mHandler.sendMessageDelayed(
                            mHandler.obtainMessage(MSG_SHOW_PREVIEW, keyIndex, 0),
                            DELAY_BEFORE_PREVIEW);
                }
            }
        }
    }
 
源代码8 项目: java-n-IDE-for-Android   文件: MyKeyboardView.java
private void showKey(final int keyIndex) {
    final PopupWindow previewPopup = mPreviewPopup;
    final Key[] keys = mKeys;
    if (keyIndex < 0 || keyIndex >= mKeys.length) return;
    Key key = keys[keyIndex];
    if (key.icon != null) {
        mPreviewText.setCompoundDrawables(null, null, null,
                key.iconPreview != null ? key.iconPreview : key.icon);
        mPreviewText.setText(null);
    } else {
        mPreviewText.setCompoundDrawables(null, null, null, null);
        mPreviewText.setText(getPreviewText(key));
        if (key.label.length() > 1 && key.codes.length < 2) {
            mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mKeyTextSize);
            mPreviewText.setTypeface(Typeface.DEFAULT_BOLD);
        } else {
            mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSizeLarge);
            mPreviewText.setTypeface(Typeface.DEFAULT);
        }
    }
    mPreviewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
    int popupWidth = Math.max(mPreviewText.getMeasuredWidth(), key.width
            + mPreviewText.getPaddingLeft() + mPreviewText.getPaddingRight());
    final int popupHeight = mPreviewHeight;
    LayoutParams lp = mPreviewText.getLayoutParams();
    if (lp != null) {
        lp.width = popupWidth;
        lp.height = popupHeight;
    }
    if (!mPreviewCentered) {
        mPopupPreviewX = key.x - mPreviewText.getPaddingLeft() + mPaddingLeft;
        mPopupPreviewY = key.y - popupHeight + mPreviewOffset;
    } else {
        // TODO: Fix this if centering is brought back
        mPopupPreviewX = 160 - mPreviewText.getMeasuredWidth() / 2;
        mPopupPreviewY = -mPreviewText.getMeasuredHeight();
    }
    mHandler.removeMessages(MSG_REMOVE_PREVIEW);
    getLocationInWindow(mCoordinates);
    mCoordinates[0] += mMiniKeyboardOffsetX; // Offset may be zero
    mCoordinates[1] += mMiniKeyboardOffsetY; // Offset may be zero

    // Set the preview background state
    mPreviewText.getBackground().setState(
            key.popupResId != 0 ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
    mPopupPreviewX += mCoordinates[0];
    mPopupPreviewY += mCoordinates[1];

    // If the popup cannot be shown above the key, put it on the side
    getLocationOnScreen(mCoordinates);
    if (mPopupPreviewY + mCoordinates[1] < 0) {
        // If the key you're pressing is on the left side of the keyboard, show the popup on
        // the right, offset by enough to see at least one key to the left/right.
        if (key.x + key.width <= getWidth() / 2) {
            mPopupPreviewX += (int) (key.width * 2.5);
        } else {
            mPopupPreviewX -= (int) (key.width * 2.5);
        }
        mPopupPreviewY += popupHeight;
    }

    if (previewPopup.isShowing()) {
        previewPopup.update(mPopupPreviewX, mPopupPreviewY,
                popupWidth, popupHeight);
    } else {
        previewPopup.setWidth(popupWidth);
        previewPopup.setHeight(popupHeight);
        previewPopup.showAtLocation(mPopupParent, Gravity.NO_GRAVITY,
                mPopupPreviewX, mPopupPreviewY);
    }
    mPreviewText.setVisibility(VISIBLE);
}
 
源代码9 项目: FirefoxReality   文件: CustomKeyboardView.java
private void showKey(final int keyIndex) {
    final PopupWindow previewPopup = mPreviewPopup;
    final Key[] keys = mKeys;
    if (keyIndex < 0 || keyIndex >= mKeys.length) return;
    Key key = keys[keyIndex];
    if (key.icon != null) {
        mPreviewText.setCompoundDrawables(null, null, null,
                key.iconPreview != null ? key.iconPreview : key.icon);
        mPreviewText.setText(null);
    } else {
        mPreviewText.setCompoundDrawables(null, null, null, null);
        mPreviewText.setText(getPreviewText(key));
        if (key.label.length() > 1 && key.codes.length < 2) {
            mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mKeyTextSize);
            mPreviewText.setTypeface(Typeface.DEFAULT_BOLD);
        } else {
            mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSizeLarge);
            mPreviewText.setTypeface(Typeface.DEFAULT);
        }
    }
    mPreviewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
    int popupWidth = Math.max(mPreviewText.getMeasuredWidth(), key.width
            + mPreviewText.getPaddingLeft() + mPreviewText.getPaddingRight());
    final int popupHeight = mPreviewHeight;
    LayoutParams lp = mPreviewText.getLayoutParams();
    if (lp != null) {
        lp.width = popupWidth;
        lp.height = popupHeight;
    }
    if (!mPreviewCentered) {
        mPopupPreviewX = key.x - mPreviewText.getPaddingLeft() + getPaddingLeft();
        mPopupPreviewY = key.y - popupHeight + mPreviewOffset;
    } else {
        // TODO: Fix this if centering is brought back
        mPopupPreviewX = 160 - mPreviewText.getMeasuredWidth() / 2;
        mPopupPreviewY = - mPreviewText.getMeasuredHeight();
    }
    mHandler.removeMessages(MSG_REMOVE_PREVIEW);
    getLocationInWindow(mCoordinates);
    mCoordinates[0] += mMiniKeyboardOffsetX; // Offset may be zero
    mCoordinates[1] += mMiniKeyboardOffsetY; // Offset may be zero

    // Set the preview background state
    mPreviewText.getBackground().setState(
            key.popupResId != 0 ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
    mPopupPreviewX += mCoordinates[0];
    mPopupPreviewY += mCoordinates[1];

    // If the popup cannot be shown above the key, put it on the side
    getLocationOnScreen(mCoordinates);
    if (mPopupPreviewY + mCoordinates[1] < 0) {
        // If the key you're pressing is on the left side of the keyboard, show the popup on
        // the right, offset by enough to see at least one key to the left/right.
        if (key.x + key.width <= getWidth() / 2) {
            mPopupPreviewX += (int) (key.width * 2.5);
        } else {
            mPopupPreviewX -= (int) (key.width * 2.5);
        }
        mPopupPreviewY += popupHeight;
    }

    if (previewPopup.isShowing()) {
        previewPopup.update(mPopupPreviewX, mPopupPreviewY,
                popupWidth, popupHeight);
    } else {
        previewPopup.setWidth(popupWidth);
        previewPopup.setHeight(popupHeight);
        previewPopup.showAtLocation(mPopupParent, Gravity.NO_GRAVITY,
                mPopupPreviewX, mPopupPreviewY);
    }
    mPreviewText.setVisibility(VISIBLE);
}
 
源代码10 项目: libcommon   文件: KeyboardView.java
private void showKey(final int keyIndex) {
	final PopupWindow previewPopup = mPreviewPopup;
	final Keyboard.Key[] keys = mKeys;
	if (keyIndex < 0 || keyIndex >= mKeys.length) return;
	Keyboard.Key key = keys[keyIndex];
	if (key.icon != null) {
		mPreviewText.setCompoundDrawables(null, null, null,
			key.iconPreview != null ? key.iconPreview : key.icon);
		mPreviewText.setText(null);
	} else {
		mPreviewText.setCompoundDrawables(null, null, null, null);
		mPreviewText.setText(getPreviewText(key));
		if (key.label.length() > 1 && key.codes.length < 2) {
			mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mKeyTextSize);
			mPreviewText.setTypeface(Typeface.DEFAULT_BOLD);
		} else {
			mPreviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSizeLarge);
			mPreviewText.setTypeface(Typeface.DEFAULT);
		}
	}
	mPreviewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
		MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
	int popupWidth = Math.max(mPreviewText.getMeasuredWidth(), key.width
		+ mPreviewText.getPaddingLeft() + mPreviewText.getPaddingRight());
	final int popupHeight = mPreviewHeight;
	ViewGroup.LayoutParams lp = mPreviewText.getLayoutParams();
	if (lp != null) {
		lp.width = popupWidth;
		lp.height = popupHeight;
	}
	int popupPreviewX;
	int popupPreviewY;
	if (!mPreviewCentered) {
		popupPreviewX = key.x - mPreviewText.getPaddingLeft() + getPaddingLeft();
		popupPreviewY = key.y - popupHeight + mPreviewOffset;
	} else {
		// TODO: Fix this if centering is brought back
		popupPreviewX = 160 - mPreviewText.getMeasuredWidth() / 2;
		popupPreviewY = -mPreviewText.getMeasuredHeight();
	}
	mHandler.removeMessages(MSG_REMOVE_PREVIEW);
	getLocationInWindow(mCoordinates);
	mCoordinates[0] += mMiniKeyboardOffsetX; // Offset may be zero
	mCoordinates[1] += mMiniKeyboardOffsetY; // Offset may be zero

	// Set the preview background state
	mPreviewText.getBackground().setState(
		key.popupResId != 0 ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
	popupPreviewX += mCoordinates[0];
	popupPreviewY += mCoordinates[1];

	// If the popup cannot be shown above the key, put it on the side
	getLocationOnScreen(mCoordinates);
	if (popupPreviewY + mCoordinates[1] < 0) {
		// If the key you're pressing is on the left side of the keyboard, show the popup on
		// the right, offset by enough to see at least one key to the left/right.
		if (key.x + key.width <= getWidth() / 2) {
			popupPreviewX += (int) (key.width * 2.5);
		} else {
			popupPreviewX -= (int) (key.width * 2.5);
		}
		popupPreviewY += popupHeight;
	}

	if (previewPopup.isShowing()) {
		previewPopup.update(popupPreviewX, popupPreviewY,
			popupWidth, popupHeight);
	} else {
		previewPopup.setWidth(popupWidth);
		previewPopup.setHeight(popupHeight);
		previewPopup.showAtLocation(mPopupParent, Gravity.NO_GRAVITY,
			popupPreviewX, popupPreviewY);
	}
	mPreviewText.setVisibility(VISIBLE);
}
 
源代码11 项目: DevUtils   文件: DialogUtils.java
/**
 * 获取 PopupWindow 是否显示
 * @param popupWindow {@link PopupWindow}
 * @return {@code true} yes, {@code false} no
 */
public static boolean isShowing(final PopupWindow popupWindow) {
    return (popupWindow != null && popupWindow.isShowing());
}