按钮上的文字在更改IsEnabled时失去中心对齐

时间:2014-10-24 07:43:32

标签: c# android xaml xamarin.forms

我正在使用Xamarin.Forms并在(非常慢)Android模拟器中测试它。

当我开始登录过程时,我会显示一个ActivityIndi​​cator,然后将按钮设置为IsEnabled =" false"

这是正确的,我不能再按下按钮了,但文字失去了它的中心位置。它向左移动。

e.g。

这是加载按钮(一切正确)

enter image description here

接下来是IsEnabled设置为False的时候。 (请注意它看起来比较暗,因为我有一个StackLayout来遮挡屏幕,但它对文本对齐没有任何影响。)但你可以看到它的对齐丢失。

enter image description here

现在,IsEnabled被设置回true。

enter image description here

这是XAML。

<Button Text="Login" BackgroundColor="#FFCF3838" HorizontalOptions="Fill" Grid.Column="1" 
 Grid.Row="0" BorderWidth="1" BorderColor="White" 
 IsEnabled="{Binding Path=LoginViewModel.IsLoginEnabled}"  Command="{Binding LoginCommand}"/>

仅供参考 - 使用MVVMLight,但我认为这没有任何区别。

1 个答案:

答案 0 :(得分:1)

这是 Android 按钮对齐问题,该问题位于 v1.2.2x <强> Xamarin.Forms 即可。可以找到一个如何触发此错误的小例子here

我刚刚在 Xamarin.Forms v1.2.3.6257 上对此进行了重新测试,问题仍然存在。

Xamarin 虽然知道这个问题,但目前即使已经提出了一些解决办法,但这些都没有完全奏效。

版本1.3 即将推出。至于这个版本是否会被修复是另一个问题。

版本1.3 。可以看到技术预览here,并为希望尝试此操作的任何人提供说明。

如果你这样做,请在另一台机器上试试,因为他们的 v.1.2.3预发行版v4 导致了我的几个错误,其中的回滚并不像它应该的那么容易过。

如果有人有 v1.3预览,如果他们可以从here运行示例,那将会很有趣,并让我们知道当前的结果< strong> v1.3 ?

唯一的解决方法是将按钮替换为自定义渲染器,以便在其中使用不同的按钮控件它的位置。