setGravity после setMeasuredDimension не работает

Я создал класс customTextView extent TextViewи я поставил textAlignment в центр. В onMeasure Я изменил textview ширина.

После того, как это текстовое представление выровняйте, измените налево, и я использовал this.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);но это не изменилось к центру

2 ответа

Как это?

@Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        ImageView imageView = (ImageView)((Activity) context).findViewById(R.id.list_r);
        int imageViewHeight = imageView.getMeasuredWidth();

        int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
        int parentHeight = MeasureSpec.getSize(heightMeasureSpec);

        int final_width = parentWidth - 2*imageViewHeight;
        this.setMeasuredDimension(final_width, parentHeight);

        Runnable runnable = new Runnable() {
            public void run() {
                view.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
            }
        };

        Handler handler = new Handler();
        handler.postDelayed(runnable,1000);
    }

Добавьте ниже код в вашем классе.

Runnable runnable = new Runnable() {
            public void run() {
              view.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
            }
   };

Handler handler = new Handler();
handler.postDelayed(runnable,1000);
Другие вопросы по тегам