【发布时间】:2016-02-09 14:18:16
【问题描述】:
我想在我的 xamarin.forms 应用程序中有一个带有开关控制的列表视图。我使用堆栈布局来对齐列表视图的内容。我想要在每个列表项上显示一个图像、2 个标签和一个开关控件。我无法按照我想要的方式将其全部对齐。
我附上了 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
}
};
这里的问题是我无法让我的图像显示在任何设备上。任何有关设计问题和显示图像的帮助都会有所帮助。
编辑 我想知道如何使这个列表视图响应?现在列表视图在 10" 屏幕上似乎变得很小。我该如何处理?
【问题讨论】:
标签: c# xamarin.forms