我想在我的xamarin.forms应用程序中使用开关控件的列表视图。我使用了一个stacklayout来对齐我的listview内容。我想要一个图像,2个标签和一个开关控件显示在每个列表项上。我无法按照我想要的方式将它们全部对齐。Stacklayout对齐的设计问题
我附上了4张图片。图1显示了所需的设计,图像2是Android上的输出,图像3在我所得到的windows设备上输出,图像4是文件夹结构。
这是我使用的stacklayout结构。我也用RelativeLayout尝试过,但似乎也没有工作。
Label name = new Label();
name.SetBinding(Label.TextProperty, new Binding("Item.Name"));
name.HorizontalOptions = LayoutOptions.Start;
name.VerticalOptions = LayoutOptions.Center;
Label date = new Label();
date.SetBinding(Label.TextProperty, new Binding("Item.Date"));
date.HorizontalOptions = LayoutOptions.Start;
date.VerticalOptions = LayoutOptions.Center;
Image img = new Image();
img.Source = Device.OnPlatform(
iOS: ImageSource.FromFile("Images/img.png"),
Android: ImageSource.FromFile("Images/img.png"),
WinPhone: ImageSource.FromFile("Images/img.png"));
img.HorizontalOptions = LayoutOptions.Start;
img.VerticalOptions = LayoutOptions.Start;
Switch mainSwitch = new Switch();
mainSwitch.SetBinding(Switch.IsToggledProperty, new Binding("IsSelected"));
mainSwitch.HorizontalOptions = LayoutOptions.End;
/*RelativeLayout layout = new RelativeLayout();
layout.Children.Add(img,
Constraint.Constant(5),
Constraint.Constant(5),
Constraint.RelativeToParent(p => p.Width - 60),
Constraint.RelativeToParent(p => p.Height - 10)
);
layout.Children.Add(name,
Constraint.Constant(5),
Constraint.Constant(5),
Constraint.RelativeToParent(p => p.Width - 60),
Constraint.RelativeToParent(p => p.Height - 10)
);
layout.Children.Add(date,
Constraint.Constant(5),
Constraint.Constant(25),
Constraint.RelativeToParent(p => p.Width - 60),
Constraint.RelativeToParent(p => p.Height - 10)
);
layout.Children.Add(mainSwitch,
Constraint.RelativeToParent(p => p.Width - 55),
Constraint.Constant(5),
Constraint.Constant(50),
Constraint.RelativeToParent(p => p.Height - 10)
);*/
/*View = layout;*/
View = new StackLayout
{
Children = {
img,
name,
mainSwitch,
date
}
};
此外,这里的问题是我无法让我的图像出现在任何设备上。任何有关设计问题和显示图像的帮助都将有所帮助。
编辑 我想知道如何使这个listview响应?目前的列表视图似乎在10英寸的屏幕上变得很小,我该如何处理它?
图像不能正常工作我得到这个错误:未处理的异常,当我在可资利用的资源文件夹中标记为AndroidResource的图像下资源: Android.Content.Res.Resources + NotFoundException:资源ID#0x0 – Arti
如果你弹出你的解决方案,我会稍微查看一下,但它的确如上所述工作。详情在我的个人资料上。 – Pete
谢谢皮特。我已经邮寄给您的源代码供您参考。我将执行更改 – Arti