【发布时间】:2020-04-02 15:11:14
【问题描述】:
我正在使用 Slider of Material 组件:
我试图在拇指移动时显示标签,labelFormatter 属性似乎支持。
这是我的代码的样子:
Slider s = new Slider(context);
s.setLabelFormatter(new Slider.LabelFormatter() {
@NonNull
@Override
public String getFormattedValue(float value) {
return "MY STRING";
}
});
当我逐行使用调试器时,它会通过这个函数:
private void drawLabelText(@NonNull Canvas canvas, int width, int top) {
labelTextPaint.getTextBounds(labelText, 0, labelText.length(), labelTextBounds);
int left = trackSidePadding + (int) (thumbPosition * width) - labelTextBounds.width() / 2;
canvas.drawText(labelText, left, top - labelTextTopOffset - thumbRadius, labelTextPaint); }
但没有文字只显示在滑块上...
我是 android 的新手,我肯定错过了一些东西。
感谢您的帮助:)
编辑 1:
这是整个代码的简化:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CoordinatorLayout layout = new CoordinatorLayout(this);
setContentView(layout);
// I am Using Coordinator Layout for current activity so...
CoordinatorLayout.LayoutParams layoutParams = new CoordinatorLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//Setting gravity to CENTER
layoutParams.gravity = Gravity.CENTER;
Slider slider = new Slider(this);
slider.setLabelFormatter(new Slider.LabelFormatter() {
@NonNull
@Override
public String getFormattedValue(float value) {
return "MY STRING";
}
});
layout.addView(slider, layoutParams);
}
但还是不行……
输出结果
编辑 2:
将 Material 组件从版本:“1.2.0-alpha02”更新到版本:“1.2.0-alpha05”修复了该问题。
【问题讨论】:
标签: java android material-components-android