繁体   English   中英

Xamarin.Forms:点击后错误的按钮文本对齐(Android)

[英]Xamarin.Forms: wrong button text alignment after click (Android)

我在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”在单击后将其文本对齐错误。

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

好的,经过几个小时的处理这个愚蠢的bug,我通过实现自定义渲染器并重写ChildDrawableStateChanged解决它:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM