Search Issue Tracker

By Design

Votes

0

Found in

2021.3.34f1

2022.3.19f1

2023.2.10f1

2023.3.0b7

6000.0.0b11

6000.1.0a7

6000.2.0a1

7000.0.0a1

Issue ID

UUM-63539

Regression

No

[Mobile] Touch is focused on the ListView TextField element and the keyboard pops up when scrolling through ListView with a ScrollView attached to it on mobile devices

-

How to reproduce:
1. Open the "IN_67966" project
2. In the Build Settings "Run Device" dropdown, select the desired device
3. Press Build And Run
4. In the Player try scrolling the list

Expected result: ListView Textfield is not focused and the touchscreen keyboard stays closed
Actual result: ListView Textfield becomes focused and the touchscreen keyboard pops up

Reproducible with: 2021.3.34f1, 2022.3.19f1, 2023.2.10f1, 2023.3.0b7

Testing environment: Windows 10 Pro, Windows 11 (user reported)
Not reproducible on: No other environment tested

Reproducible on these devices:
VLNQA00270, Samsung Galaxy S10e (SM-G970F), Android 12, CPU: Exynos 9 (9820), GPU: Mali-G76
VLNQA00267, Samsung Galaxy S10+ (SM-G975F), Android 12, CPU: Exynos 9 (9820), GPU: Mali-G76
VLNQA00178, Xiaomi Redmi Note 4 (Redmi Note 4), Android 6.0, CPU: MediaTek Helio X20 MT6797M, GPU: Mali-T880
VLNQA00120, Google Pixel 2 (Pixel 2), Android 8.1.0, CPU: Snapdragon 835 MSM8998, GPU: Adreno (TM) 540
VLNQA00321, Xiaomi MI 9 (MI 9), Android 10, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
VLNQA00494 - iPhone 14 Pro Max, 16.3.1 iOS
VLNQA00358 - iPhone 12, 14.1 iOS
VLNQA00392 - iPad (9th generation), 15.0 iOS
VLNQA00310 - iPad Pro 12.9", 13.4.1 iOS

Note: reproducible both on Android and iOS Platforms

  1. Resolution Note:

    This behaviour is as-designed because the software keyboard opens when the textfield is focused, which happens on the PointerDown. You can override this behaviour as shown below.

    listView.makeItem = () =>
    {
    var textField = new TextField();
    var textElement = textField.Q<TextElement>();

    // Prevent default focus behavior
    void HandlePointerDown(PointerDownEvent evt)
    {
    textField.focusController.IgnoreEvent(evt);
    }

    // Custom focusing
    void HandlePointerUp(PointerDownEvent evt)
    {
    textField.Focus();
    }

    textField.RegisterCallback<PointerDownEvent>(HandlePointerDown, TrickleDown.TrickleDown);
    textElement.RegisterCallback<PointerDownEvent>(HandlePointerUp, TrickleDown.TrickleDown);

    return textField;
    };

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.