Изменить позицию SeekBar внутри своего контейнера - PullRequest
0 голосов
/ 01 июня 2018

Всякий раз, когда расширяется класс, столбец будет отображаться в вертикальном центре его контейнера.Мне нужно разместить текст над панелью, и увеличение высоты (я устанавливаю произвольную высоту для вида) вызывает кучу пустого пространства под панелью.Я уже давно гуглюсь, но все, что я нахожу, касается в основном большого пальца, и мне нужно нарисовать полоску на дне контейнера.

Это то, что я пытаюсь достичь как единое представление (обратите внимание, как позиция бара не центрирована):

enter image description here

Единственный «полезный» код, который я смог найти, был такой:

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

Есть идеи?

...