У меня проблема с Xamarin.Forms(версия 1.2.2) на Android (Nexus 5).
Выравнивание Button.Text
часто не центрируется после выполнения щелчка.
В коротком проекте я выяснил, что обновление пользовательского интерфейса вызывает проблему.
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
изменить
Программное редактирование пользовательского интерфейса также приводит к ошибке. Изменение label.Text
в асинхронном методе после короткого ожидания приводит к тому, что "buttonGood" выравнивает текст после щелчка.
edit2: Я создал пример/тестовый проект на GitHub: https://github.com/perpetual-mobile/ButtonTextAlignmentBug.git Выравнивание правильное, когда StackLayout заменяется на AbsolutLayout, но мне нужно, чтобы StackLayout работал хорошо.