Xamarin.forms 这是通过Xamarin.Android用户界面的对讲路径吗?
假设我创建以下共享XAML:Xamarin.forms 这是通过Xamarin.Android用户界面的对讲路径吗?,xamarin.forms,Xamarin.forms,假设我创建以下共享XAML: <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button Grid.Row="0" Text="One" />
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Text="Two First" />
<Button Grid.Column="1" Text="Two Second" />
</Grid>
<Button Grid.Row="2" Text="Three" />
</Grid>
然后我在安卓设备上运行这个,并运行对讲屏幕阅读器。当我在UI中向前滑动时,对讲从按钮“一”移动到按钮“三”,然后移动到按钮“两个第一”和“两个第二”。这与我定义UI的顺序不匹配,所以这是预期的吗?当我运行一个按钮“一个”->“两个第一”->“两个第二”->“三”,当运行同一个UI作为XAMARIN。UWP应用程序,并使用叙述者屏幕读取器。
我发现,如果我更新UI,使UI的某些部分在XAML层次结构中定义的UI深度上保持平衡,就可以避免意外的对讲导航。例如,如果我将按钮“三”包装在网格中,那么我将获得预期的导航路径
我还可以避免意外的对讲导航,如果我为我希望对讲访问的所有内容添加一个TabIndex,但随着应用程序UI的发展,以及我的理解,这需要维护,并非所有类型的Xamarin.Forms控件都支持TabIndex。不确定这是否是
网格
设计的问题。从共享代码来看,我认为网格
可能会将第二个行
设置为低优先级。因为第二个行
分别定义列
如果这就是网格设计的逻辑。您可以尝试以相同的优先级定义行
和列
代码如下:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Row="0"
Grid.ColumnSpan="2"
Text="One" />
<Button Grid.Row="1"
Grid.Column="0"
Text="Two First" />
<Button Grid.Row="1"
Grid.Column="1"
Text="Two Second" />
<Button Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Text="Three" />
</Grid>
嗨,你解决了吗?如果是这样,记得有时间在这里分享解决方案:-)