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 属性 变化,然后捕获原始图像的高度并将高度绑定到布局。图像高度可以是原始像素,您可能希望将其转换为与密度无关的像素,以便在高分辨率设备上更好地显示。
我有一个 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 属性 变化,然后捕获原始图像的高度并将高度绑定到布局。图像高度可以是原始像素,您可能希望将其转换为与密度无关的像素,以便在高分辨率设备上更好地显示。