/// <summary> /// Merges all the listeners registered on the specified observer with the listeners /// registered on this object. /// </summary> /// <remarks> /// Merges all the listeners registered on the specified observer with the listeners /// registered on this object. After this method is invoked, the specified observer /// will return false in /// <see cref="isAlive()">isAlive()</see> /// and should not be used anymore. /// </remarks> /// <param name="observer">The ViewTreeObserver whose listeners must be added to this observer /// </param> internal void merge(android.view.ViewTreeObserver observer) { if (observer.mOnGlobalFocusListeners != null) { if (mOnGlobalFocusListeners != null) { mOnGlobalFocusListeners.addAll(observer.mOnGlobalFocusListeners); } else { mOnGlobalFocusListeners = observer.mOnGlobalFocusListeners; } } if (observer.mOnGlobalLayoutListeners != null) { if (mOnGlobalLayoutListeners != null) { mOnGlobalLayoutListeners.addAll(observer.mOnGlobalLayoutListeners); } else { mOnGlobalLayoutListeners = observer.mOnGlobalLayoutListeners; } } if (observer.mOnPreDrawListeners != null) { if (mOnPreDrawListeners != null) { mOnPreDrawListeners.addAll(observer.mOnPreDrawListeners); } else { mOnPreDrawListeners = observer.mOnPreDrawListeners; } } if (observer.mOnTouchModeChangeListeners != null) { if (mOnTouchModeChangeListeners != null) { mOnTouchModeChangeListeners.addAll(observer.mOnTouchModeChangeListeners); } else { mOnTouchModeChangeListeners = observer.mOnTouchModeChangeListeners; } } if (observer.mOnComputeInternalInsetsListeners != null) { if (mOnComputeInternalInsetsListeners != null) { mOnComputeInternalInsetsListeners.addAll(observer.mOnComputeInternalInsetsListeners ); } else { mOnComputeInternalInsetsListeners = observer.mOnComputeInternalInsetsListeners; } } observer.kill(); }
protected internal override void onDetachedFromWindow() { if (mGlobalListenersAdded) { android.view.ViewTreeObserver observer = getViewTreeObserver(); observer.removeOnScrollChangedListener(mScrollChangedListener); observer.removeOnPreDrawListener(mDrawListener); mGlobalListenersAdded = false; } mRequestedVisible = false; updateWindow(false, false); mHaveFrame = false; if (mWindow != null) { try { mSession.remove(mWindow); } catch (android.os.RemoteException) { } // Not much we can do here... mWindow = null; } mSession = null; mLayout.token = null; base.onDetachedFromWindow(); }
public virtual bool tryShow() { mPopup = new android.widget.ListPopupWindow(mContext, null, [email protected] .popupMenuStyle); mPopup.setOnDismissListener(this); mPopup.setOnItemClickListener(this); mAdapter = new [email protected](this, mMenu ); mPopup.setAdapter(mAdapter); mPopup.setModal(true); android.view.View anchor = mAnchorView; if (anchor != null) { bool addGlobalListener = mTreeObserver == null; mTreeObserver = anchor.getViewTreeObserver(); // Refresh to latest if (addGlobalListener) { mTreeObserver.addOnGlobalLayoutListener(this); } anchor.addOnAttachStateChangeListener(this); mPopup.setAnchorView(anchor); } else { return(false); } mPopup.setContentWidth(System.Math.Min(measureContentWidth(mAdapter), mPopupMaxWidth )); mPopup.setInputMethodMode(android.widget.PopupWindow.INPUT_METHOD_NOT_NEEDED); mPopup.show(); mPopup.getListView().setOnKeyListener(this); return(true); }
public virtual void onViewDetachedFromWindow(android.view.View v) { if (mTreeObserver != null) { if (!mTreeObserver.isAlive()) { mTreeObserver = v.getViewTreeObserver(); } mTreeObserver.removeGlobalOnLayoutListener(this); } v.removeOnAttachStateChangeListener(this); }
/// <summary>Dismisses the popup window with activities.</summary> /// <remarks>Dismisses the popup window with activities.</remarks> /// <returns>True if dismissed, false if already dismissed.</returns> public virtual bool dismissPopup() { if (isShowingPopup()) { getListPopupWindow().dismiss(); android.view.ViewTreeObserver viewTreeObserver = getViewTreeObserver(); if (viewTreeObserver.isAlive()) { viewTreeObserver.removeGlobalOnLayoutListener(mOnGlobalLayoutListener); } } return(true); }
protected internal override void onDetachedFromWindow() { base.onDetachedFromWindow(); android.widget.ActivityChooserModel dataModel = mAdapter.getDataModel(); if (dataModel != null) { dataModel.unregisterObserver(mModelDataSetOberver); } android.view.ViewTreeObserver viewTreeObserver = getViewTreeObserver(); if (viewTreeObserver.isAlive()) { viewTreeObserver.removeGlobalOnLayoutListener(mOnGlobalLayoutListener); } mIsAttachedToWindow = false; }
public virtual void onDismiss() { mPopup = null; mMenu.close(); if (mTreeObserver != null) { if (!mTreeObserver.isAlive()) { mTreeObserver = mAnchorView.getViewTreeObserver(); } mTreeObserver.removeGlobalOnLayoutListener(this); mTreeObserver = null; } mAnchorView.removeOnAttachStateChangeListener(this); }
protected internal override void onAttachedToWindow() { base.onAttachedToWindow(); mParent.requestTransparentRegion(this); mSession = getWindowSession(); mLayout.token = getWindowToken(); mLayout.setTitle(java.lang.CharSequenceProxy.Wrap("SurfaceView")); mViewVisibility = getVisibility() == VISIBLE; if (!mGlobalListenersAdded) { android.view.ViewTreeObserver observer = getViewTreeObserver(); observer.addOnScrollChangedListener(mScrollChangedListener); observer.addOnPreDrawListener(mDrawListener); mGlobalListenersAdded = true; } }
protected internal override void onDetachedFromWindow() { base.onDetachedFromWindow(); android.view.ViewTreeObserver treeObserver = getViewTreeObserver(); treeObserver.removeOnTouchModeChangeListener(this); }
protected internal override void onAttachedToWindow() { base.onAttachedToWindow(); android.view.ViewTreeObserver treeObserver = getViewTreeObserver(); treeObserver.addOnTouchModeChangeListener(this); }
public virtual bool tryShow() { mPopup = new android.widget.ListPopupWindow(mContext, null, [email protected] .popupMenuStyle); mPopup.setOnDismissListener(this); mPopup.setOnItemClickListener(this); mAdapter = new [email protected](this, mMenu ); mPopup.setAdapter(mAdapter); mPopup.setModal(true); android.view.View anchor = mAnchorView; if (anchor != null) { bool addGlobalListener = mTreeObserver == null; mTreeObserver = anchor.getViewTreeObserver(); // Refresh to latest if (addGlobalListener) { mTreeObserver.addOnGlobalLayoutListener(this); } anchor.addOnAttachStateChangeListener(this); mPopup.setAnchorView(anchor); } else { return false; } mPopup.setContentWidth(System.Math.Min(measureContentWidth(mAdapter), mPopupMaxWidth )); mPopup.setInputMethodMode(android.widget.PopupWindow.INPUT_METHOD_NOT_NEEDED); mPopup.show(); mPopup.getListView().setOnKeyListener(this); return true; }
public virtual void onViewDetachedFromWindow(android.view.View v) { if (mTreeObserver != null) { if (!mTreeObserver.isAlive()) { mTreeObserver = v.getViewTreeObserver(); } mTreeObserver.removeGlobalOnLayoutListener(this); } v.removeOnAttachStateChangeListener(this); }
public virtual void onDismiss() { mPopup = null; mMenu.close(); if (mTreeObserver != null) { if (!mTreeObserver.isAlive()) { mTreeObserver = mAnchorView.getViewTreeObserver(); } mTreeObserver.removeGlobalOnLayoutListener(this); mTreeObserver = null; } mAnchorView.removeOnAttachStateChangeListener(this); }