Listview Xamarin表单列表视图在ios上无法正常工作

Listview Xamarin表单列表视图在ios上无法正常工作,listview,xamarin,xamarin.forms,Listview,Xamarin,Xamarin.forms,我试图用Xamarin表单创建一个简单的列表视图。listView在android中工作,但在iOS上我遇到了一个错误,内容被错误地放置在单元格上。请参见下面的我的图片和代码: 这是我的代码: 页面 单元格: 项目的DataAccessLayer: public static List<NewsItem> GetNewsItemList() { List<NewsItem> NewsItemList = new List<NewsItem> ();

我试图用Xamarin表单创建一个简单的列表视图。listView在android中工作,但在iOS上我遇到了一个错误,内容被错误地放置在单元格上。请参见下面的我的图片和代码:

这是我的代码:

页面

单元格:

项目的DataAccessLayer:

public static List<NewsItem> GetNewsItemList()
{
    List<NewsItem> NewsItemList = new List<NewsItem> ();
    NewsItemList.Add(new NewsItem { header = "News1", content = "content1"});
    NewsItemList.Add(new NewsItem { header = "News2", content = "content2"});
    NewsItemList.Add(new NewsItem { header = "News3", content = "content3"});
    NewsItemList.Add(new NewsItem { header = "News4", content = "content4"});
    return NewsItemList;
}
public静态列表GetNewsItemList()
{
List NewsItemList=新列表();
添加(新的新闻项{header=“News1”,content=“content1”});
添加(新的新闻项{header=“News2”,content=“content2”});
添加(新的新闻项{header=“News3”,content=“content3”});
添加(新的新闻项{header=“News4”,content=“content4”});
返回NewsItemList;
}

我做错了什么?

这里的问题是您使用的填充是20px,太大了

看看什么是填充——它是容器元素和子元素布局的空间之间的空间

在本例中,您将20px放在两侧,因此
标题标签从顶部下方20px开始,取20px本身,而
内容标签从顶部下方开始。同时,ListView仍有其默认的行高,看起来大约是42px,因此
contentLabel
从偏移量40px开始,因此位于下一个单元格上

您可以将填充更改为
s。填充=新厚度(20,2,20,2)这样你在左边和右边得到20像素,但在顶部和底部只有2像素


您还将注意到,ListView从屏幕顶部开始,iOS栏覆盖了部分内容。要修复此问题,请对内容页本身应用类似的填充技巧:

if (Device.OS == TargetPlatform.iOS)
    this.Padding = new Thickness (0, 20, 0, 0);

这里的问题是您使用的填充是20px,太大了

看看什么是填充——它是容器元素和子元素布局的空间之间的空间

在本例中,您将20px放在两侧,因此
标题标签从顶部下方20px开始,取20px本身,而
内容标签从顶部下方开始。同时,ListView仍有其默认的行高,看起来大约是42px,因此
contentLabel
从偏移量40px开始,因此位于下一个单元格上

您可以将填充更改为
s。填充=新厚度(20,2,20,2)这样你在左边和右边得到20像素,但在顶部和底部只有2像素


您还将注意到,ListView从屏幕顶部开始,iOS栏覆盖了部分内容。要修复此问题,请对内容页本身应用类似的填充技巧:

if (Device.OS == TargetPlatform.iOS)
    this.Padding = new Thickness (0, 20, 0, 0);

这里的问题是您使用的填充是20px,太大了

看看什么是填充——它是容器元素和子元素布局的空间之间的空间

在本例中,您将20px放在两侧,因此
标题标签从顶部下方20px开始,取20px本身,而
内容标签从顶部下方开始。同时,ListView仍有其默认的行高,看起来大约是42px,因此
contentLabel
从偏移量40px开始,因此位于下一个单元格上

您可以将填充更改为
s。填充=新厚度(20,2,20,2)这样你在左边和右边得到20像素,但在顶部和底部只有2像素


您还将注意到,ListView从屏幕顶部开始,iOS栏覆盖了部分内容。要修复此问题,请对内容页本身应用类似的填充技巧:

if (Device.OS == TargetPlatform.iOS)
    this.Padding = new Thickness (0, 20, 0, 0);

这里的问题是您使用的填充是20px,太大了

看看什么是填充——它是容器元素和子元素布局的空间之间的空间

在本例中,您将20px放在两侧,因此
标题标签从顶部下方20px开始,取20px本身,而
内容标签从顶部下方开始。同时,ListView仍有其默认的行高,看起来大约是42px,因此
contentLabel
从偏移量40px开始,因此位于下一个单元格上

您可以将填充更改为
s。填充=新厚度(20,2,20,2)这样你在左边和右边得到20像素,但在顶部和底部只有2像素


您还将注意到,ListView从屏幕顶部开始,iOS栏覆盖了部分内容。要修复此问题,请对内容页本身应用类似的填充技巧:

if (Device.OS == TargetPlatform.iOS)
    this.Padding = new Thickness (0, 20, 0, 0);

我建议减少
堆栈布局上的
填充
——或者将
列表视图的
行高
设置得更大,以适应所有
填充
我建议减少
堆栈布局上的
填充
——或者设置
ListView的
RowHeight
要更大以容纳所有
Padding
我建议减少
StackLayout上的
Padding
——或者将
ListView的
RowHeight
设置为更大以容纳所有
Padding
我建议减少
堆栈布局上的
填充
——或者将
列表视图的
行高
设置为更大,以容纳所有的
填充