我在Android(Nexus 5)上使用Xamarin.Forms(版本1.2.2)时遇到了问题。Button.Text
的对齐在执行点击操作后常常不居中。
在一个小项目中,我发现更新UI会导致这个问题。
public class App
{
public static Page GetMainPage()
{
var label = new Label {
Text = "label",
};
var buttonBad = new Button {
Text = "buttonBad",
Command = new Command(() => label.Text += "1"),
};
var buttonGood = new Button {
Text = "buttonGood",
};
return new ContentPage {
Content = new StackLayout {
Children = {
buttonBad,
buttonGood,
label,
}
}
};
}
}
点击 "buttonBad" (更新 label.Text
)会导致此按钮的文本对齐不再居中。点击 "buttonGood" 不会出现这个问题。
有什么好的解决办法吗?
这个解决办法似乎太复杂了:http://forums.xamarin.com/discussion/20608/fix-for-button-layout-bug-on-android
编辑:UI 的编程编辑也会导致该 bug。在短暂等待之后异步更改 label.Text
会导致单击后 "buttonGood" 的文本对齐错误。
编辑2:我在 GitHub 上创建了一个示例 / 测试项目:https://github.com/perpetual-mobile/ButtonTextAlignmentBug.git 当 StackLayout 被 AbsolutLayout 替换时,对齐是正确的,但我需要 StackLayout 正常工作。