Android emulator 表单列表视图,如何设置行高?

Android emulator 表单列表视图,如何设置行高?,android-emulator,xamarin.forms,Android Emulator,Xamarin.forms,Xamarin.Forms中的ListView有一个RowHeight属性,但似乎不管我将其设置为什么高度 我使用的是Visual Studio 2013,我拥有Xamarin的商业版许可证,我使用的是Android仿真器MonoForAndroid_API_15,我相信我拥有所有相关内容的最新版本。到目前为止,我还无法运行iOS或WinPhone模拟器,因此无法进行比较。这只是Android emulator的一个问题,还是设置RowHeight属性不正确 这是我继承的ContentPage(

Xamarin.Forms中的
ListView
有一个
RowHeight
属性,但似乎不管我将其设置为什么高度

我使用的是Visual Studio 2013,我拥有Xamarin的商业版许可证,我使用的是Android仿真器MonoForAndroid_API_15,我相信我拥有所有相关内容的最新版本。到目前为止,我还无法运行iOS或WinPhone模拟器,因此无法进行比较。这只是Android emulator的一个问题,还是设置
RowHeight
属性不正确

这是我继承的
ContentPage
(请注意,我设置了
RowHeight
):

public class测验页面:ContentPage
{
私有只读ListView\u ListView;
公开测验页()
{
Title=“测试”;
SetHasNavigationBar(this,true);
_listView=新listView{RowHeight=20};
内容=_列表视图;
}
受保护的异步重写void OnAppearing()
{
base.OnAppearing();
_listView.ItemsSource=new[]{“一”、“二”、“三”、“四”、“五”};
}
}
应用程序中

公共类应用程序
{
公共静态页面GetMainPage()
{
返回新导航页面(new QuizzesPage());
}
}
这是视觉效果:

请注意,我的代码是的简化版本,您可以看到它们以与我相同的方式设置
RowHeight
属性

无论我将什么设置为
RowHeight
行的高度都相同。我能做什么

编辑1:我计划本周升级到Windows 8.1,然后可以在WinPhone上测试它的外观。要在工作时将Mac添加到网络,我首先需要一些权限。这就是为什么到目前为止我只能使用Android模拟器的原因

编辑2:我尝试将
设置为true,但这只会使它接受更长的条目,而不会更改行的高度(或字体),这对我来说太大了

编辑3:我发布了一个解决方案/解决方案作为答案。至少我能完全控制牢房的高度。但是
行高
似乎没什么作用。

我得到了:

不确定行高,但请尝试将ListView.HasRows设置为true。然后可以指定单元格的高度。可能是在使用RowHeight时也需要设置此bool

这让我意识到我必须创建一个从
ViewCell
继承并绑定到类上的属性的类:

公共类QuizCell:ViewCell
{
公共QuizCell()
{
var标签=新标签{HeightRequest=20};
label.SetBinding(label.TextProperty,“Title”);
视图=标签;
}
}
要使用此选项,我将
QuizzesPage
更改为:

public class测验页面:ContentPage
{
私有只读ListView\u ListView;
公开测验页()
{
Title=“测试”;
SetHasNavigationBar(this,true);
_listView=新建listView
{
HasRows=true,
ItemTemplate=新数据模板(typeof(QuizCell)),
//行高=10
};
内容=_列表视图;
}
受保护的异步重写void OnAppearing()
{
base.OnAppearing();
var quizEndpoint=新quizEndpoint(“测试”);
var quizzes=await quizEndpoint.LoadAllAsync();
_listView.ItemsSource=测验;
}
}
这里的重要部分是:

  • ListView
    s
    ItemSource
    设置为
    List
    ,其中
    quick
    对象具有
    Title
    属性(我将
    标签绑定到的属性)
  • ListView
    将其
    ItemTemplate
    方法设置为
    newdatatemplate(typeof(QuizCell))
    ,这是我创建的新类
  • 现在,我可以使用继承自
    ViewCell
    的类中使用的组件的
    HeightRequest
    属性将行的高度设置为我想要的任何值

    我出现问题的原因是我简化了太多(而且
    RowHeight
    似乎完成不了太多)。总之,这与仿真器无关。我希望这对别人有帮助