Nativescript 6 外部图像父不尊重高度

Nativescript 6 external image parent does not respect height

我有一个 NS 6 应用程序并在 iPhone 6+ 和 iOS 13.

上进行测试

在这个应用程序中,我有一个 ListView,在 ListView 中,我有一个 nativescript-carousel

在轮播中,我有一个加载外部图像的图像组件。问题是当我加载页面时,图像被加载,但父级不会垂直扩展以适应图像的整个高度。我只看到了一小部分

我尝试刷新 ListView 并调用 page.requestLayout(),但这没有帮助。如果我设置图片高度,一切正常,但问题是某些轮播项目可能没有图片,所以我无法承诺设置高度。

这是我的代码(为简洁起见被截断):

<ListView id="lst" items="{{ asks }}">
      <ListView.itemTemplate>
           <StackLayout class="ask-item">
                    
   …

             <GridLayout rows="*" columns="*" marginTop="10">

             <ns:Carousel items="{{ recs }}" color="white" pageChanged="myChangeEvent" android:indicatorAnimation="slide" indicatorColor="#999999" indicatorColorUnselected="#dddddd" indicatorOffset="0,15" showIndicator="true">
                  <ns:Carousel.itemTemplate>
                       <ns:CarouselItem backgroundColor="#f9f9f9" verticalAlignment="middle">
                             <StackLayout class="rec-item">

                                …

                                <Image src="{{ image }}" stretch="aspectFit" horizontalAlignment="center" />
                                            
                 …

                              </StackLayout>
                         </ns:CarouselItem>
                   </ns:Carousel.itemTemplate>
                </ns:Carousel>

           </GridLayout>
      </StackLayout>

 </ListView.itemTemplate>
</ListView>

处理此问题的最佳方法是什么?

谢谢。

本质上iOS ListView 高度一旦呈现就无法更改,您必须更新特定的列表项。

尝试预先下载图像或监听 isLoading 属性 变化,然后捕获原始图像的高度并将高度绑定到布局。图像高度可以是原始像素,您可能希望将其转换为与密度无关的像素,以便在高分辨率设备上更好地显示。