@nativescript-community/ui-popover
Version:
Popover plugn
40 lines • 1.67 kB
JavaScript
import { Application } from '@nativescript/core';
import { HorizontalPosition, VerticalPosition, _commonPopoverDismissed, _commonShowNativePopover } from '.';
export * from './index.common';
export function showPopover(view, { anchor, vertPos = VerticalPosition.BELOW, horizPos = HorizontalPosition.CENTER, x = 0, y = 0, fitInScreen = true, onDismiss, outsideTouchable = true, focusable = true }) {
const context = anchor._context;
_commonShowNativePopover(view);
const size = -2; //android.view.ViewGroup.LayoutParams.WRAP_CONTENT
view._setupAsRootView(context);
view.parent = Application.getRootView();
view._isAddedToNativeVisualTree = true;
view.callLoaded();
const window = new com.nativescript.popover.RelativePopupWindow(view.nativeViewProtected, size, size, true);
window.setOutsideTouchable(outsideTouchable);
window.setFocusable(focusable);
window.setBackgroundDrawable(null);
let result;
window.setOnDismissListener(new android.widget.PopupWindow.OnDismissListener({
onDismiss() {
if (onDismiss) {
onDismiss(result);
}
if (view && view.isLoaded) {
view.callUnloaded();
}
view._isAddedToNativeVisualTree = false;
_commonPopoverDismissed(view);
view._tearDownUI();
view.parent = null;
}
}));
window.showOnAnchor(anchor.nativeViewProtected, vertPos, horizPos, x, y, fitInScreen);
return {
android: window,
close: async (r) => {
result = r;
window.dismiss();
}
};
}
//# sourceMappingURL=index.android.js.map