Nativescript Vue图像拉伸方面不起作用

时间:2020-02-18 23:15:40

标签: nativescript-vue

我正在使用Nativescript-vue应用程序,但是Image组件的大小不正确会遇到一个奇怪的问题。

我正在尝试使用Stretch =“ aspectFill”为组件正确调整图像大小。它最初在ios模拟器中进行实时预览时起作用,但是当您下次渲染该组件时,它会减小尺寸以适合空间,而不是AspectFill。我的组件代码如下。

 <StackLayout>
    <Image :src="promo.image" stretch="aspectFill" height="200" />
    <StackLayout class="promocontainer" row="1" padding="0">
      <GridLayout columns="*,*" class="region">
        <Label col="0" :text="promo.region" />
        <Label col="1" :text="'$' + promo.price" textAlignment="right" />
      </GridLayout>
      <Label :text="promo.inclusions_heading" class="heading" />
      <Label :text="promo.heading" padding="10" textWrap="true" class="tagline" />
      <Label :text="promo.introText" padding="10" textWrap="true" class="text" />
    </StackLayout>
  </StackLayout>

当您更改strech选项时,ios中的实时预览将显示预期的行为,如下所示

enter image description here

与应用程序交互,从该页面导航并返回或在物理ios设备上预览时,图像显示如下,而不是上面期望的方面填充图像。

Unexpected behavior

我希望以前有人遇到过这种情况,并且可能能够协助制定解决方案。

1 个答案:

答案 0 :(得分:1)

该组件被添加到ListView,这导致了上面的呈现问题。我通过将组件包装在ScrollView和StackLayout中来解决此问题。这立即解决了拉伸渲染问题。

带有拉伸错误的原始代码:

SortByColumns(Filter(Orderproces, StartsWith(Title, TextSearchBox1.Text)), "Title", If(SortDescending1, Descending, Ascending))

解决方案:

SortByColumns(Filter(Orderproces, StartsWith(Title, TextSearchBox1.Text) || TextSearchBox1.Text in 'Behandelende Afdeling'), "Title", If(SortDescending1, Descending, Ascending))

看起来ListView计算项目大小的方式有所不同,并且至少在涉及其他内容时,它与图像拉伸不兼容。