Iam с использованием компонента Slider of Material:
https://github.com/material-components/material-components-android/blob/master/docs/components/Slider.md
Iam пытается отобразить метку при движении большого пальца, что, кажется, поддерживается атрибут labelFormatter.
вот как выглядит мой код:
Slider s = new Slider(context);
s.setLabelFormatter(new Slider.LabelFormatter() {
@NonNull
@Override
public String getFormattedValue(float value) {
return "MY STRING";
}
});
Когда я go построчно с отладчиком, он проходит через эту функцию:
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); }
но текст не отображается, только ползунок ...
Я немного нововведен в androïd, и я определенно что-то упускаю.
Спасибо за помощь:)
РЕДАКТИРОВАТЬ 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);
}
Но все еще не работает ...
результат вывода
![enter image description here](https://i.stack.imgur.com/XurXy.jpg)
https://youtu.be/obV4K-Nxu-0
РЕДАКТИРОВАТЬ 2:
Обновление компонента Material из версии: '1.2.0-alpha02' до версии : «1.2.0-alpha05» исправил проблему.