android 的 Nativescript 滑块高度增加
Nativescript slider height increase for android
我想增加滑块的高度,但我做不到。我也找不到任何关于此的信息。我尝试通过 XML 代码和 JS 代码,但两者似乎都无法完成工作。
这是我的 XML 代码:
<Page loaded="pageLoaded" xmlns="http://www.nativescript.org/tns.xsd">
<StackLayout>
<Slider id="sli"minValue="0" maxValue="100" value="50" color="#D81F26" height="20"></Slider>
</StackLayout>
</Page>
这是我的 JS 代码:
var getViewById = require("tns-core-modules/ui/core/view").getViewById;
pageLoaded = function (args) {
const page = args.object;
var slider = getViewById(page, "sli");
slider.android.setProgressTintList(android.content.res.ColorStateList.valueOf(android.graphics.Color.parseColor("#D81F26")));
slider.android.setPaddingRelative(0, 0, 0, 0);
slider.android.layout(0, 0, 0, 10);
slider.android.setMinHeight(20);
slider.android.setMaxHeight(20);
}
exports.pageLoaded = pageLoaded;
Android Slider 严重依赖 Drawable,您将不得不调整单个 drawable 和图层的高度。最好的方法是设计您自己的可绘制对象并通过原生主题应用它。如果你还想在 运行 时只调整高度,你可以这样做
const drawable = slider.nativeView.getProgressDrawable();
for (let i = 0; i < drawable.getNumberOfLayers(); i++) {
drawable.setLayerHeight(i, 30);
}
我想增加滑块的高度,但我做不到。我也找不到任何关于此的信息。我尝试通过 XML 代码和 JS 代码,但两者似乎都无法完成工作。
这是我的 XML 代码:
<Page loaded="pageLoaded" xmlns="http://www.nativescript.org/tns.xsd">
<StackLayout>
<Slider id="sli"minValue="0" maxValue="100" value="50" color="#D81F26" height="20"></Slider>
</StackLayout>
</Page>
这是我的 JS 代码:
var getViewById = require("tns-core-modules/ui/core/view").getViewById;
pageLoaded = function (args) {
const page = args.object;
var slider = getViewById(page, "sli");
slider.android.setProgressTintList(android.content.res.ColorStateList.valueOf(android.graphics.Color.parseColor("#D81F26")));
slider.android.setPaddingRelative(0, 0, 0, 0);
slider.android.layout(0, 0, 0, 10);
slider.android.setMinHeight(20);
slider.android.setMaxHeight(20);
}
exports.pageLoaded = pageLoaded;
Android Slider 严重依赖 Drawable,您将不得不调整单个 drawable 和图层的高度。最好的方法是设计您自己的可绘制对象并通过原生主题应用它。如果你还想在 运行 时只调整高度,你可以这样做
const drawable = slider.nativeView.getProgressDrawable();
for (let i = 0; i < drawable.getNumberOfLayers(); i++) {
drawable.setLayerHeight(i, 30);
}