Жест PAN ведет себя по -разному в Android против WindowsAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Жест PAN ведет себя по -разному в Android против Windows

Сообщение Anonymous »

У меня есть один pangesturerecognizer на элемент для перетаскивания каждого элемента на экране, в Windows он ведет себя как предполагаемый, но на Android есть проблема, когда есть несколько активных штрихов. С множественными одновременными жестами (на нескольких элементах) и не влияет какое -либо прикосновение вне элемента с активным жестом.

В Windows touch b игнорируется. ✓
на Android При Touch a выпускается жест продолжается с позиции Touch B . ✖

демонстрация эмулятора Android -эмулятора



Извините о качественном и сотом. Когда красный квадрат прыгает, когда я освобождаю прикосновение от жеста, когда на экране зарегистрировано прикосновение.using Microsoft.Maui.Controls.Shapes;

namespace PanGestureIssueDemo;

public class MainPage : ContentPage
{
readonly AbsoluteLayout display;
Rectangle a, b;
Dictionary rectangleStartPointPair = [];

public MainPage()
{
display = [];
Content = display;

a = new()
{
StrokeThickness = 10,
Fill = Colors.Red,
WidthRequest = 50,
HeightRequest = 50,
TranslationX = 50,
TranslationY = 50
};
PanGestureRecognizer panA = new();
panA.PanUpdated += OnPanUpdated;
a.GestureRecognizers.Add(panA);
rectangleStartPointPair[a] = new(0, 0);
display.Add(a);

b = new()
{
StrokeThickness = 10,
Fill = Colors.Green,
WidthRequest = 50,
HeightRequest = 50,
TranslationX = 150,
TranslationY = 50
};
PanGestureRecognizer panB = new();
panB.PanUpdated += OnPanUpdated;
b.GestureRecognizers.Add(panB);
rectangleStartPointPair = new(0, 0);
display.Add(b);
}

private void OnPanUpdated(object? sender, PanUpdatedEventArgs e)
{
if (!a.Equals(sender) && !b.Equals(sender))
{
return;
}

Rectangle rectangle = (Rectangle)sender;
Point startPoint = rectangleStartPointPair[rectangle];

switch (e.StatusType)
{
case GestureStatus.Completed:
break;
case GestureStatus.Canceled:
break;
case GestureStatus.Started:
startPoint.X = rectangle.TranslationX;
startPoint.Y = rectangle.TranslationY;
rectangleStartPointPair[rectangle] = startPoint;
break;
case GestureStatus.Running:
if (DeviceInfo.Platform == DevicePlatform.Android)
{
startPoint.X = rectangle.TranslationX;
startPoint.Y = rectangle.TranslationY;
rectangleStartPointPair[rectangle] = startPoint;
}

double xPosition = startPoint.X + e.TotalX;
double yPosition = startPoint.Y + e.TotalY;

rectangle.TranslationX = xPosition;
rectangle.TranslationY = yPosition;
break;
}
}
}
< /code>

Создать пустой проект MAUI с использованием .NET 8 и заменить файл основной страницы на это < /p>
< /blockquote>

Я добавил 2 элемента с жестом Pan для полноты, но второй элемент не требуется, чтобы повторить проблему. Я не уверен, что вызывает это, код уже адаптирует логику позиции жеста для каждой платформы, но я не уверен, почему он ведет себя как на Android, я попытался установить точки отстранения Жест, когда был завершен другой жест, я не проверил это в предоставленном примере кода.

Подробнее здесь: https://stackoverflow.com/questions/796 ... vs-windows
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Жест PAN ведет себя по -разному в Android против Windows
    Anonymous » » в форуме Android
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Жест PAN ведет себя по -разному в Android против Windows
    Anonymous » » в форуме Android
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Почему Table.DeleteItem (PrimaryKey) ведет себя по-разному при использовании с DynamoDblocal против AWS-SDK (фактическая
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Почему Saxon+xsl ведет себя по-разному в Windows и Linux?
    Anonymous » » в форуме Linux
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Почему один и тот же фрагмент (простого) кода Java ведет себя по-разному на разных устройствах Android?
    Anonymous » » в форуме Android
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»