Android Touch Input Not Working in NoesisGUI (Works on Windows)
Posted: 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
and I just clicked on xaml asset and used "Add to viewport" logic to add it to blank level.
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
Code: Select all
<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>