Android Touch Input Not Working in NoesisGUI (Works on Windows)
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>
Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)
Answering my own question,
it seems you need call on your created component.Although it works fine in Windows, this step was needed for me in Android somehow
it seems you need call
Code: Select all
SetVisibility(ESlateVisibility::Visible)Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)
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!
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!
Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)
Thanks @hcpizzi.
@roozbehid, do you mind creating a ticket for this?
@roozbehid, do you mind creating a ticket for this?
Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)
I'm having the same problem. Please let us know how you solved it!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 fileand I just clicked on xaml asset and used "Add to viewport" logic to add it to blank level.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>
Last edited by fondnone on 11 May 2026, 12:06, edited 2 times in total.
Re: Android Touch Input Not Working in NoesisGUI (Works on Windows)
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