如何更改NativeScript中进度组件的高度

如何更改NativeScript中进度组件的高度,nativescript,Nativescript,我正在尝试更改nativescript中进度组件的高度,如下所示: <Progress value="{{ progress }}" maxValue="{{totalTime}}" height="100"> </Progress> 但是height属性没有效果。如何更改此组件的高度?您可以使用height属性更改ProgressBar的高度(由于本机控件中存在某些特殊功能)。 然而,NativeScript的最大优点之一是您可以直接访问iOS和Android的本

我正在尝试更改nativescript中进度组件的高度,如下所示:

<Progress value="{{ progress }}" maxValue="{{totalTime}}" height="100">
</Progress>


但是height属性没有效果。如何更改此组件的高度?

您可以使用height属性更改ProgressBar的高度(由于本机控件中存在某些特殊功能)。 然而,NativeScript的最大优点之一是您可以直接访问iOS和Android的本机API。因此,经过一些小的研究,这里是我如何设法改变默认的规模(可能有更好的方法-这是我遇到的最短的方法之一)

类型脚本示例:

使用laoded事件在代码隐藏中获取对进度条的引用

<Progress minValue="0" maxValue="100" value="25" loaded="onProgressLoaded"/>

然后在代码隐藏中访问本机控件

import { Progress } from 'ui/progress';
import { isAndroid, isIOS } from "platform"

declare let CGAffineTransformMakeScale: any; // or use tns-platform-declarations instead of casting to any


export function onProgressLoaded(args: EventData) {

    let progress = <Progress>args.object;

    if (isAndroid) {
        progress.android.setScaleY(5);  //  progress.android === android.widget.ProgressBar
    } else if (isIOS) {
        let transform = CGAffineTransformMakeScale(1.0, 5.0);  
        progress.ios.transform = transform; // progress.ios === UIProgressView
    }

}
从'ui/Progress'导入{Progress};
从“平台”导入{isAndroid,isIOS}
声明让CGAffineTransformMakeScale:any;//或者使用tns平台声明,而不是强制转换到任何
onProgressLoaded导出函数(参数:EventData){
让progress=args.object;
if(isAndroid){
progress.android.setScaleY(5);//progress.android===android.widget.ProgressBar
}否则如果(isIOS){
let transform=CGAffineTransformMakeScale(1.0,5.0);
progress.ios.transform=transform;//progress.ios===UIProgressView
}
}

可以找到完整的演示应用程序

您可以直接设置进度元素的scaleY属性。 例如:


这将使其在垂直(Y)轴上的宽度增加2倍

<Progress scaleY="2" value="{{ progress }}" maxValue="{{totalTime}}" height="100"></Progress>