gpt4 book ai didi

android - Xamarin.Forms:单击后按钮文本对齐错误 (Android)

转载 作者:可可西里 更新时间:2023-11-01 18:46:46 25 4
gpt4 key购买 nike

我在 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 也会导致错误。在短暂的等待后更改异步方法中的 label.Text 会导致“buttonGood”在单击后错误地对齐其文本。

编辑2:我在 GitHub 上创建了一个示例/测试项目: https://github.com/perpetual-mobile/ButtonTextAlignmentBug.git当 StackLayout 被 AbsolutLayout 替换时,对齐是正确的,但我需要 StackLayout 才能正常工作。

最佳答案

好吧,在处理了这个愚蠢的错误几个小时之后,我通过实现自定义渲染器并覆盖 ChildDrawableStateChanged 解决了它:

public override void ChildDrawableStateChanged(Android.Views.View child) 
{
base.ChildDrawableStateChanged(child);
Control.Text = Control.Text;
}

关于android - Xamarin.Forms:单击后按钮文本对齐错误 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com