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);
}