void CreateDialog() { var date = DatePickerDialog.GetDate(Element); _dialog = new ADatePickerDialog(_view.Context, (o, e) => { DatePickerDialog.SetDate(Element, e.Date); _view.ClearFocus(); _dialog.CancelEvent -= OnCancelButtonClicked; _dialog = null; }, date.Year, date.Month - 1, date.Day); _dialog.SetCanceledOnTouchOutside(true); }
public override bool DispatchTouchEvent(MotionEvent e) { if (e.Action == MotionEventActions.Down) { _downTime = DateTime.UtcNow; _downPosition = new Point(e.RawX, e.RawY); } if (e.Action != MotionEventActions.Up) { return(base.DispatchTouchEvent(e)); } View currentFocus1 = ((Activity)Context).CurrentFocus; bool flag = base.DispatchTouchEvent(e); if (currentFocus1 is EditText) { View currentFocus2 = ((Activity)Context).CurrentFocus; if (currentFocus1 == currentFocus2 && _downPosition.Distance(new Point(e.RawX, e.RawY)) <= Context.ToPixels(20.0) && !(DateTime.UtcNow - _downTime > TimeSpan.FromMilliseconds(200.0))) { int[] location = new int[2]; currentFocus1.GetLocationOnScreen(location); float num1 = e.RawX + currentFocus1.Left - location[0]; float num2 = e.RawY + currentFocus1.Top - location[1]; if (!new Rectangle(currentFocus1.Left, currentFocus1.Top, currentFocus1.Width, currentFocus1.Height).Contains(num1, num2)) { Context.HideKeyboard(currentFocus1); RequestFocus(); currentFocus1.ClearFocus(); } } } return(flag); }
public override bool DispatchTouchEvent(MotionEvent e) { if (e.Action == MotionEventActions.Down) { downTime = DateTime.UtcNow; downPosition = new Xamarin.Forms.Point((double)e.RawX, (double)e.RawY); } if (e.Action != MotionEventActions.Up) { return(base.DispatchTouchEvent(e)); } Android.Views.View currentFocus1 = ((Activity)Context).CurrentFocus; bool flag = base.DispatchTouchEvent(e); if (currentFocus1 is EditText) { Android.Views.View currentFocus2 = ((Activity)Context).CurrentFocus; if (currentFocus1 == currentFocus2 && this.downPosition.Distance(new Xamarin.Forms.Point((double)e.RawX, (double)e.RawY)) <= ContextExtensions.ToPixels(Context, 20.0) && !(DateTime.UtcNow - downTime > TimeSpan.FromMilliseconds(200.0))) { int[] location = new int[2]; currentFocus1.GetLocationOnScreen(location); float num1 = e.RawX + currentFocus1.Left - location[0]; float num2 = e.RawY + currentFocus1.Top - location[1]; if (!new Rectangle((double)currentFocus1.Left, (double)currentFocus1.Top, (double)currentFocus1.Width, (double)currentFocus1.Height).Contains((double)num1, (double)num2)) { ContextExtensions.HideKeyboard(Context, currentFocus1); RequestFocus(); currentFocus1.ClearFocus(); } } } return(flag); }
protected virtual void SearchHandlerFocusChangeRequested(object sender, VisualElement.FocusRequestArgs e) { e.Result = true; if (e.Focus) { _control?.RequestFocus(); _control?.PostShowKeyboard(); } else { _control.ClearFocus(); _control.HideKeyboard(); } }
/// <summary> /// Snaps the specified view. /// </summary> /// <param name="view">The view.</param> /// <returns>The screenshot bitmap.</returns> public static Bitmap Snap(View view) { Bitmap bitmap = null; if (view != null) { view.ClearFocus(); bitmap = CreateBitmapSafely(view.Width, view.Height, Bitmap.Config.Argb8888, 1); if (bitmap != null) { var canvas = new Canvas(bitmap); view.Draw(canvas); } } return bitmap; }
public static void Unfocus(this AView platformView, IView view) { platformView.ClearFocus(); }
public override AView GetView(int position, AView convertView, ViewGroup parent) { bool isHeader, nextIsHeader; Cell item = GetCellForPosition(position, out isHeader, out nextIsHeader); if (item == null) { return(new AView(Context)); } var makeBline = true; var layout = convertView as ConditionalFocusLayout; if (layout != null) { makeBline = false; convertView = layout.GetChildAt(0); } else { layout = new ConditionalFocusLayout(Context) { Orientation = Orientation.Vertical } }; AView aview = CellFactory.GetCell(item, convertView, parent, Context, _view); if (!makeBline) { if (convertView != aview) { layout.RemoveViewAt(0); layout.AddView(aview, 0); } } else { layout.AddView(aview, 0); } AView bline; if (makeBline) { bline = new AView(Context) { LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, 1) }; layout.AddView(bline); } else { bline = layout.GetChildAt(1); } if (isHeader) { bline.SetBackgroundColor(Color.Accent.ToAndroid()); } else if (nextIsHeader) { bline.SetBackgroundColor(global::Android.Graphics.Color.Transparent); } else { using (var value = new TypedValue()) { int id = global::Android.Resource.Drawable.DividerHorizontalDark; if (Context.Theme.ResolveAttribute(global::Android.Resource.Attribute.ListDivider, value, true)) { id = value.ResourceId; } else if (Context.Theme.ResolveAttribute(global::Android.Resource.Attribute.Divider, value, true)) { id = value.ResourceId; } bline.SetBackgroundResource(id); } } layout.ApplyTouchListenersToSpecialCells(item); if (_restoreFocus == item) { if (!aview.HasFocus) { aview.RequestFocus(); } _restoreFocus = null; } else if (aview.HasFocus) { aview.ClearFocus(); } return(layout); }