【发布时间】:2019-02-16 21:07:13
【问题描述】:
我在“语言页面”上有 3 个 ImageButton,它们代表应用程序 (Android) 的 3 种不同语言。
<ContentPage.Resources>
<ResourceDictionary>
<Style x:Key="flagsImageButtonStyles" TargetType="ImageButton">
<Setter Property="HeightRequest"
Value="130" />
<Setter Property="WidthRequest"
Value="130" />
<Setter Property="Aspect" Value="AspectFill" />
<Setter Property="BackgroundColor" Value="Transparent" />
</Style>
</ResourceDictionary>
</ContentPage.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1.5*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
...
<ImageButton Grid.Row="1" StyleId="fr" Grid.Column="1" x:Name="btnFrench" Clicked="LanguageButton_Clicked" Style="{StaticResource flagsImageButtonStyles}"/>
<ImageButton Grid.Row="2" StyleId="nl" Grid.Column="1" x:Name="btnDutch" Clicked="LanguageButton_Clicked" Style="{StaticResource flagsImageButtonStyles}"/>
<ImageButton Grid.Row="3" StyleId="en" Grid.Column="1" x:Name="btnEnglish" Clicked="LanguageButton_Clicked" Style="{StaticResource flagsImageButtonStyles}"/>
</Grid>
我这样设置 ImageButtons 的来源:
protected override void OnAppearing()
{
switch (CrossMultilingual.Current.CurrentCultureInfo.TwoLetterISOLanguageName) // "fr", "nl", "en"
{
case "fr":
btnFrench.Source = "fr_flag_selected.png";
btnDutch.Source = "nl_flag.png";
btnEnglish.Source = "en_flag.png";
break;
case "nl":
btnFrench.Source = "fr_flag.png";
btnDutch.Source = "nl_flag_selected.png";
btnEnglish.Source = "en_flag.png";
break;
case "en":
btnFrench.Source = "fr_flag.png";
btnDutch.Source = "nl_flag.png";
btnEnglish.Source = "en_flag_selected.png";
break;
}
base.OnAppearing();
}
每当我单击其中一个时,我都会设置语言并导航到另一个页面。
所以下次加载“语言页面”时,它会检查当前语言并调整 ImageBUtton 的 Source。
问题是,每当我单击其中一个 ImageButton 或应用程序进入睡眠状态时,ImageButton 都会变得非常小。
任何想法,可能有什么问题?
【问题讨论】:
-
尝试在图像上设置高度/宽度请求值
-
我已经这样做了,在上面的样式中
-
出于好奇,为什么你有三列而只有第二列是自动的?
标签: android xamarin.forms imagebutton