Xamarin Android-移植Android Api 26-> API 28-单击时按钮位于最前面

我们正在将Xamarin项目从Android 8.0更新为9.0(API 26-> API 28)。

我们检测到布局上的其他行为:我们有一个按钮,在该按钮上方,我们在StackLayout中显示标签和图标。

使用旧的Android 8.0版本,我们可以正确单击按钮。 在新的Android 9.0版本中,我们注意到我们可以正确地单击按钮,但是当我们单击按钮时,该按钮将显示在最前面,并隐藏StackLayout标签和图标。 当我们返回此屏幕时,该按钮保留在前景中,并且StackLayout标签和图标不再显示。

即使单击按钮,我们如何强制StackLayout标签和图标停留在按钮上? 谢谢

    <StackLayout Orientation="Vertical" AbsoluteLayout.Layoutflags="All" AbsoluteLayout.LayoutBounds="0,1,1">
        <ctrl:TitleBarControl x:Name="titleBar" Title="Menu Trasporto Valori"></ctrl:TitleBarControl>
        <Grid HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" Style="{StaticResource standardGrid}">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <Button x:Name="btnProssimo" Image="MondoConPinPoint_48x48.gif" Text="Prossimo" HorizontalOptions="Fill" VerticalOptions="Fill" Grid.Row="0" Grid.Column="0" Style="{StaticResource menuButton}" Command="{Binding ProssimoCommand}"></Button>
            <StackLayout Orientation="Horizontal" Grid.Row="0" Grid.Column="0" HorizontalOptions="Center" VerticalOptions="End">
                <Label Text="Da eseguire:" HorizontalOptions="Center" VerticalOptions="Center"  Style="{StaticResource lightLabel}"></Label>
                <Label Text="{Binding DaEseguire}" HorizontalOptions="Center" VerticalOptions="Center" Style="{StaticResource boldLabel}"></Label>
            </StackLayout>

            <Button x:Name="btnProssimoI" Image="Cacciavite_48x48.gif" Text="Prossimo I" HorizontalOptions="Fill" VerticalOptions="Fill" Grid.Row="1" Grid.Column="0" Style="{StaticResource menuButton}" Command="{Binding ProssimoICommand}"></Button>
            <StackLayout Orientation="Horizontal" Grid.Row="1" Grid.Column="0" HorizontalOptions="Center" VerticalOptions="End">
                <Label Text="Da eseguire:" HorizontalOptions="Center" VerticalOptions="End" Grid.Row="1" Grid.Column="0" Style="{StaticResource lightLabel}"></Label>
                <Label Text="{Binding IDaEseguire}" HorizontalOptions="End" VerticalOptions="End" Grid.Row="1" Grid.Column="0" Style="{StaticResource boldLabel}"></Label>
                <Image x:Name="imgSveglia" Grid.Row="1" Grid.Column="0" VerticalOptions="End" HorizontalOptions="End" Source="Sveglia_24x24.gif" WidthRequest="26" IsVisible="{Binding IsI}"></Image>
            </StackLayout>


        </Grid>
    </StackLayout>
wudan713 回答:Xamarin Android-移植Android Api 26-> API 28-单击时按钮位于最前面

从Xamarin.Forms 4.0开始,默认情况下,所有针对FormsAppCompatActivity的应用程序都将使用快速渲染器。 如果您要解决此问题,可以禁用FastRenderers。参见:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/internals/fast-renderers#backwards-compatibility

MainActivity.OnCreate通话之前将以下内容添加到您的global::Xamarin.Forms.Forms.Init(this,savedInstanceState)

global::Xamarin.Forms.Forms.SetFlags("UseLegacyRenderers");
,

请改用ImageButton。这应该可以解决您的问题。

本文链接:https://www.f2er.com/3122876.html

大家都在问