我一直在尝试在 Android 中单击按钮时向 Stacklayout 添加标签 View 。 但它抛出空指针异常。以下是我想要实现的目标。谁能就如何在 xamarin.forms 中实现这一点提出建议
C# 中的 Xamarin.Forms 代码
StackLayout parent= new StackLayout ();
Button add= new Button
{
HorizontalOptions=LayoutOptions.End,
BackgroundColor=Xamarin.Forms.Color.White,
Text="ADD",
TextColor=Xamarin.Forms.Color.Maroon,
};
add.Clicked += OnButtonClicked;
Label firstLabel = new Label
{
Text = "Label 1",
HorizontalOptions = LayoutOptions.StartAndExpand,
TextColor=Xamarin.Forms.Color.FromHex("#000000")
};
parent.Children.Add(add);
parent.Children.Add(firstLabel );
在 ButtonClick 中添加标签
void OnButtonClicked(object sender, EventArgs e)
{
Label secondLabel = new Label
{
Text = "Label 1",
HorizontalOptions = LayoutOptions.StartAndExpand,
TextColor=Xamarin.Forms.Color.FromHex("#000000")
};
parent.Children.Add(secondLabel );
}
提前致谢
最佳答案
您的代码按原样工作...只需一点小改动 - 将 parent
设为类字段,以便从 OnButtonClicked
确保更新解决方案包,以便拥有最新的 Xamarin.Forms。始终在解决方案级别更新包,以免发生版本冲突
此版本已经过测试并可在 iOS 上运行:
public class LabelPage: ContentPage
{
StackLayout parent = null;
public LabelPage ()
{
parent = new StackLayout ();
Button add = new Button {
HorizontalOptions = LayoutOptions.End,
BackgroundColor = Xamarin.Forms.Color.White,
Text = "ADD",
TextColor = Xamarin.Forms.Color.Maroon,
};
add.Clicked += OnButtonClicked;
Label firstLabel = new Label {
Text = "Label 1",
HorizontalOptions = LayoutOptions.StartAndExpand,
TextColor = Xamarin.Forms.Color.FromHex ("#000000")
};
parent.Children.Add (add);
parent.Children.Add (firstLabel);
Content = parent;
}
void OnButtonClicked (object sender, EventArgs e)
{
Label secondLabel = new Label {
Text = "Label 1",
HorizontalOptions = LayoutOptions.StartAndExpand,
TextColor = Xamarin.Forms.Color.FromHex ("#000000")
};
parent.Children.Add (secondLabel);
//UpdateChildrenLayout ();
}
}
关于c# - 在按钮上向父项添加子项单击 Xamarin.forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24929977/