TextView гравитация - PullRequest
       17

TextView гравитация

11 голосов
/ 10 ноября 2010

Кто-нибудь пытался написать свою собственную реализацию ViewGroup с некоторыми TextViews в нем?

У меня проблема, что TextViews в такой реализации не уважают свойство gravity TextView.setGravity(Gravity.CENTER) и текст расположен в верхнем левом углу.

Может кто-нибудь помочь мне выяснить, почему?

РЕДАКТИРОВАТЬ:

ОК.несмотря ни на что, я уже понял это сам.

Если кто-то заинтересован, я просто переписал метод onMeasure() (для всех моих TextViews) и изменил вызов с super.onMeasure() на setMeasuredDimension(int, int) и гравитация началаработать нормально.

В основном, в моем собственном макете я использую следующий класс для отображения текста:

private static class GravityTextView extends TextView {  

    public GravityTextView(Context context) {  
        super(context);  
    }

    @Override  
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
        setMeasuredDimension(widthMeasureSpec, heightMeasureSpec);  
    }

}

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Это не неправильное поведение, вы просто пытаетесь установить неправильное свойство.

С TextView.setGravity(Gravity.CENTER) вы устанавливаете гравитацию содержимого TextView.

То, что вы ищетеlayout_gravity.

0 голосов
/ 04 июня 2011

Я знаю, что это действительно старый пост, но я нашел ответ на эту дилемму в своей работе.Вы можете прочитать об этом здесь.

TextView внутри RelativeLayout в настраиваемом представлении с неправильным применением гравитации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...