40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
using Android.App;
|
|
using Android.Content;
|
|
using Android.Content.PM;
|
|
using Android.OS;
|
|
using Android.Views;
|
|
using Android.Views.InputMethods;
|
|
using Android.Widget;
|
|
|
|
namespace RBLNews.Maui
|
|
{
|
|
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
|
|
public class MainActivity : MauiAppCompatActivity
|
|
{
|
|
public override bool DispatchTouchEvent(MotionEvent? e)
|
|
{
|
|
if (e!.Action == MotionEventActions.Down)
|
|
{
|
|
var focusedElement = CurrentFocus;
|
|
if (focusedElement is EditText editText)
|
|
{
|
|
var editTextLocation = new int[2];
|
|
editText.GetLocationOnScreen(editTextLocation);
|
|
var clearTextButtonWidth = 100;
|
|
var editTextRect = new Rect(editTextLocation[0], editTextLocation[1], editText.Width + clearTextButtonWidth, editText.Height);
|
|
|
|
var touchPosX = (int)e.RawX;
|
|
var touchPosY = (int)e.RawY;
|
|
if (!editTextRect.Contains(touchPosX, touchPosY))
|
|
{
|
|
editText.ClearFocus();
|
|
var inputService = GetSystemService(Context.InputMethodService) as InputMethodManager;
|
|
inputService?.HideSoftInputFromWindow(editText.WindowToken, 0);
|
|
}
|
|
}
|
|
}
|
|
return base.DispatchTouchEvent(e);
|
|
}
|
|
}
|
|
}
|