调整StackLayout元素的高度

时间:2017-10-17 14:55:42

标签: android xamarin cross-platform

我对Xamarin Forms真的很陌生,我刚刚接到了调整此应用程序Android版本UI的任务。在Android手机上,用户界面看起来不错,但在平板电脑上它有点小。因此,当设备是平板电脑时,我已经开发了一个新页面,但是我似乎无法调整StackLayout元素的高度。这是代码:

<ListView.ItemTemplate>
  <DataTemplate>
    <ViewCell>
      <StackLayout VerticalOptions="Fill" Spacing="0" Padding="0" Margin="0">
        <StackLayout VerticalOptions="Fill" HeightRequest="60" Padding="2" Orientation="Horizontal">
          <Label VerticalOptions="Center" FontSize="19" Margin="14,0,0,0" Text="{Binding Name}" TextColor="White" ></Label>
          <Image VerticalOptions="Center" HorizontalOptions="EndAndExpand" HeightRequest="50" WidthRequest="30" Source="imgArrow.png"></Image>
        </StackLayout>
        <BoxView Margin="0,2,0,0" HeightRequest="0.5" BackgroundColor="White" />
      </StackLayout>
    </ViewCell>
  </DataTemplate>
</ListView.ItemTemplate>

知道我在HeightRequest字段中放置了什么值,它看起来总是一样。我确定我在这里遗漏了一些完全基本的东西。这是屏幕https://imgur.com/MAHgOgr上的样子。我只是想让它占用更多的空间,这将涉及增加字体大小,但是当我这样做时,它看起来很糟糕。 pic with font size 40。我非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

您是否尝试将listview的“HasUnevenRows”属性设置为true?

我认为它会解决你的字体大小问题

答案 1 :(得分:0)

  1. 检测是否是平板电脑/手机,为您使用的变量设置正确的高度
  2. 因为您在DataTemplate中绑定HeightRequest以设置您已设置的变量。
  3. 对于datatemplates之外的一个简单情况,你可以给元素赋予x:name,然后在构造函数中设置带有这些名称的widthrequests。