静态创建按钮时,清除和添加stacklayout没有问题,但是动态创建按钮时,清除和添加stacklayout就有问题了。
在动态创建的时候有什么需要我单独做的吗?我也必须在代码中创建布局本身吗?
我不明白。这就像一只虫子。
<ContentView x:Name="xMainContentsView" Grid.Row="1" Grid.Column="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<ScrollView Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<StackLayout x:Name="xView" Margin="35,80,35,80" Spacing="25" Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<Button Text="g02" Clicked="Button_Clicked"></Button>
</StackLayout>
</ScrollView>
<!--<StackLayout x:Name="xPageView" Orientation="Horizontal" HorizontalOptions="FillAndExpand">
</StackLayout>-->
</ContentView>
private void Button_Clicked(object sender, EventArgs e)
{
xView.Children.Clear();
xView.Children.Add(new Spectrum(this));
}
private void InitializeCompView()
{
foreach (MainViewMeasureType contents in Enum.GetValues(typeof(MainViewMeasureType)))
{
CtrlButton button = new CtrlButton
{
WidthRequest = 180,
HeightRequest = 180,
Text = contents.ToString(),
ClassId = contents.ToString(),
};
button.Pressed += BtnMainContentClick;
xView.Children.Add(button);
}
}
private void BtnMainContentClick(object sender, EventArgs e)
{
xView.Children.Clear();
xView.Children.Add(new Spectrum(this));
}
1条答案
按热度按时间fcy6dtqo1#
我已经创建了一个示例来测试StackLayout.add,Clear函数,遇到了同样的问题。
另外,异常消息提到FasterRender,然后我在mainactivity中禁用了它。但是同样的异常来了,所以我把
button.Pressed += BtnMainContentClick;
改为button.Clicked += BtnMainContentClick;
。它运行得很好。所以你也可以试试这个,并把它作为一个bug报告给github上的xamarin。