Всякий раз, когда расширяется класс, столбец будет отображаться в вертикальном центре его контейнера.Мне нужно разместить текст над панелью, и увеличение высоты (я устанавливаю произвольную высоту для вида) вызывает кучу пустого пространства под панелью.Я уже давно гуглюсь, но все, что я нахожу, касается в основном большого пальца, и мне нужно нарисовать полоску на дне контейнера.
Это то, что я пытаюсь достичь как единое представление (обратите внимание, как позиция бара не центрирована):
Единственный «полезный» код, который я смог найти, был такой:
Window window = ((Activity) getContext()).getWindow();
window.setGravity(Gravity.BOTTOM);
WindowManager.LayoutParams wmlp = window.getAttributes();
wmlp.y = getHeight() / 4;
window.setAttributes(wmlp);
Но он никак не влияет.
Мой пользовательский класс, ничего необычного:
public class RateSeekbar extends AppCompatSeekBar {
private Paint lettersPaint;
private Paint numberPaint;
// constructors and call to init()
private void init() {
lettersPaint = new Paint();
numberPaint = new Paint();
... // style the two different paints
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
... // get a couple of strings from resources and measure them
int middleHor = getWidth() / 2;
canvas.drawText(text1, getPaddingLeft(), 40, lettersPaint);
canvas.drawText(text2, getWidth() - text2Size - getPaddingRight(), 40, lettersPaint);
canvas.drawText(String.valueOf(getProgress()), middleHor - (text3Size / 2), 50, numberPaint);
}
}
Есть идеи?