roozbehid
Topic Author
Posts: 9
Joined: 30 Apr 2025, 17:59

Android Touch Input Not Working in NoesisGUI (Works on Windows)

06 Aug 2025, 21:30

Im using NoesisGUI inside Unreal Engine 5.6 and I'm having trouble with basic UI interaction on Android

What Works:
- Running on windows (either in editor or stand alone) builds, everything works fine
- Buttons respons to my click and show visual press feedback or actions set on them
- No custom code is used

On Android Phone experience:
- UI Renders correctly in Phone/Android
- I put a timer action just to make sure overall that works and that worked
- No touch interaction works, feels like a disabled page
- I set breakpoins and I can see in NoesisInstance.cpp HandleMouseButtonDownEvent is called, but it doesnt do `NoesisInstance->NativeOnMouseButtonDown(MyGeometry, InPointerEvent)` because it is not a 3d widget
- If using debugger, I jump code to `NoesisInstance->NativeOnMouseButtonDown(MyGeometry, InPointerEvent)` and run it, my button key press event then works!

My sample xaml file
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
        mc:Ignorable="d" d:DataContext="MyStructure000 Data 02" Focusable="True" IsManipulationEnabled="True" AllowDrop="True" FocusManager.IsFocusScope="True" IsFocusEngagementEnabled="True" IsFocusEngaged="True"  d:DesignWidth="720" d:DesignHeight="1280">

    <Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="VisualStateGroup0">
                <VisualState x:Name="VisualState0">
                    <Storyboard>
                        <StringAnimationUsingKeyFrames Storyboard.TargetName="TextBlock0" Storyboard.TargetProperty="(TextBlock.Text)">
                            <DiscreteStringKeyFrame KeyTime="00:00:00" Value="Default"/>
                            <DiscreteStringKeyFrame KeyTime="00:00:01" Value="TimerChanged"/>
                        </StringAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <b:Interaction.Triggers>
            <b:TimerTrigger TotalTicks="1000">
                <b:GoToStateAction StateName="VisualState0"/>
            </b:TimerTrigger>
        </b:Interaction.Triggers>
       
        <Grid.RowDefinitions>
            <RowDefinition Height="48*"/>
            <RowDefinition Height="32*"/>
        </Grid.RowDefinitions>
        <!-- Hidden element to track index -->
        
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="2*"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        
        
        
        <TextBlock x:Name="TextBlock0" Text="Default" TextWrapping="Wrap" Foreground="#FF3078C0" Margin="0" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="43"/>
        <Button x:Name="Button1" Grid.Column="1" Width="200" Height="80" Content="Hello click on me" Margin="0">
            <b:Interaction.Triggers>
                <b:EventTrigger EventName="Click">
                    <b:ChangePropertyAction PropertyName="Content" Value="Clicked"/>
                </b:EventTrigger>
                <b:EventTrigger EventName="Tapped">
                    <b:ChangePropertyAction PropertyName="Content" Value="Tapped"/>
                </b:EventTrigger>
                <b:EventTrigger EventName="MouseDown">
                    <b:ChangePropertyAction PropertyName="Content" Value="MouseDown"/>
                </b:EventTrigger>
                <b:EventTrigger EventName="PreviewMouseDown">
                    <b:ChangePropertyAction PropertyName="Content" Value="PreviousMouseDown"/>
                </b:EventTrigger>
                <b:EventTrigger EventName="TouchDown">
                    <b:ChangePropertyAction PropertyName="Content" Value="TouchDown"/>
                </b:EventTrigger>
            </b:Interaction.Triggers>
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                </EventTrigger>
            </Button.Triggers>
        </Button>
    </Grid>
</Page>
and I just clicked on xaml asset and used "Add to viewport" logic to add it to blank level.
 
roozbehid
Topic Author
Posts: 9
Joined: 30 Apr 2025, 17:59

Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)

11 Aug 2025, 18:51

Answering my own question,
it seems you need call
SetVisibility(ESlateVisibility::Visible)
on your created component.Although it works fine in Windows, this step was needed for me in Android somehow
 
User avatar
hcpizzi
Site Admin
Posts: 368
Joined: 09 Feb 2012, 12:40

Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)

12 Aug 2025, 09:33

Hi,

Sorry for the lack of response on our side. I'm looking at your solution and our code and I think I know the reason for this. Thanks for posting your solution. Yes, it looks like the default value of SelfHitTestInvisible could have undesirable effects on touch only platforms.

Your solution will work unless you want to interact with objects in the viewport through empty parts of your UI. In any case, I'll look into fixing this right away.

Thank you once more!
 
User avatar
jsantos
Site Admin
Posts: 4823
Joined: 20 Jan 2012, 17:18
Contact:

Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)

12 Aug 2025, 14:15

Thanks @hcpizzi.

@roozbehid, do you mind creating a ticket for this?
 
fondnone
Posts: 3
Joined: 26 Feb 2024, 11:00

Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)

14 Aug 2025, 11:52

Im using NoesisGUI inside Unreal Engine 5.6 and I'm having trouble with basic UI interaction on Android

What Works:
- Running on windows (either in editor or stand alone) builds, everything works fine
- Buttons respons to my click and show visual press basketball stars feedback or actions set on them
- No custom code is used

On Android Phone experience:
- UI Renders correctly in Phone/Android
- I put a timer action just to make sure overall that works and that worked
- No touch interaction works, feels like a disabled page
- I set breakpoins and I can see in NoesisInstance.cpp HandleMouseButtonDownEvent is called, but it doesnt do `NoesisInstance->NativeOnMouseButtonDown(MyGeometry, InPointerEvent)` because it is not a 3d widget
- If using debugger, I jump code to `NoesisInstance->NativeOnMouseButtonDown(MyGeometry, InPointerEvent)` and run it, my button key press event then works!

My sample xaml file
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
        mc:Ignorable="d" d:DataContext="MyStructure000 Data 02" Focusable="True" IsManipulationEnabled="True" AllowDrop="True" FocusManager.IsFocusScope="True" IsFocusEngagementEnabled="True" IsFocusEngaged="True"  d:DesignWidth="720" d:DesignHeight="1280">

    <Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="VisualStateGroup0">
                <VisualState x:Name="VisualState0">
                    <Storyboard>
                        <StringAnimationUsingKeyFrames Storyboard.TargetName="TextBlock0" Storyboard.TargetProperty="(TextBlock.Text)">
                            <DiscreteStringKeyFrame KeyTime="00:00:00" Value="Default"/>
                            <DiscreteStringKeyFrame KeyTime="00:00:01" Value="TimerChanged"/>
                        </StringAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <b:Interaction.Triggers>
            <b:TimerTrigger TotalTicks="1000">
                <b:GoToStateAction StateName="VisualState0"/>
            </b:TimerTrigger>
        </b:Interaction.Triggers>
       
        <Grid.RowDefinitions>
            <RowDefinition Height="48*"/>
            <RowDefinition Height="32*"/>
        </Grid.RowDefinitions>
        <!-- Hidden element to track index -->
        
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="2*"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        
        
        
        <TextBlock x:Name="TextBlock0" Text="Default" TextWrapping="Wrap" Foreground="#FF3078C0" Margin="0" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="43"/>
        <Button x:Name="Button1" Grid.Column="1" Width="200" Height="80" Content="Hello click on me" Margin="0">
            <b:Interaction.Triggers>
                <b:EventTrigger EventName="Click">
                    <b:ChangePropertyAction PropertyName="Content" Value="Clicked"/>
                </b:EventTrigger>
                <b:EventTrigger EventName="Tapped">
                    <b:ChangePropertyAction PropertyName="Content" Value="Tapped"/>
                </b:EventTrigger>
                <b:EventTrigger EventName="MouseDown">
                    <b:ChangePropertyAction PropertyName="Content" Value="MouseDown"/>
                </b:EventTrigger>
                <b:EventTrigger EventName="PreviewMouseDown">
                    <b:ChangePropertyAction PropertyName="Content" Value="PreviousMouseDown"/>
                </b:EventTrigger>
                <b:EventTrigger EventName="TouchDown">
                    <b:ChangePropertyAction PropertyName="Content" Value="TouchDown"/>
                </b:EventTrigger>
            </b:Interaction.Triggers>
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                </EventTrigger>
            </Button.Triggers>
        </Button>
    </Grid>
</Page>
and I just clicked on xaml asset and used "Add to viewport" logic to add it to blank level.
I'm having the same problem. Please let us know how you solved it!
Last edited by fondnone on 11 May 2026, 12:06, edited 2 times in total.
 
User avatar
jsantos
Site Admin
Posts: 4823
Joined: 20 Jan 2012, 17:18
Contact:

Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)

15 Aug 2025, 12:53

There is a workaround mentioned above. Please create a ticket so this can be tracked and solved.

Who is online

Users browsing this forum: Bing [Bot], Semrush [Bot] and 3 guests