Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TextView gravity

Tags:

android

Has anyone tried to write his own implementation of ViewGroup with some TextViews in it?

I have a problem, that TextViews in such an implementation don't respect the gravity property TextView.setGravity(Gravity.CENTER) and text is positioned in the top left corner.

Can anyone help me find out why?

EDIT:

Ok. nevermind, I figured it out on my own already.

If enyone is interested, I just overwrote method onMeasure() (for all my TextViews) and changed call from super.onMeasure() to setMeasuredDimension(int, int) and gravity started to work normally.

Basically, in my custom layout I use the following class to display text:

private static class GravityTextView extends TextView {  

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

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

}
like image 443
Alex Orlov Avatar asked Nov 10 '10 15:11

Alex Orlov


1 Answers

This is not the wrong behavior you are just trying to set the wrong property.

With TextView.setGravity(Gravity.CENTER) you are setting the gravity of the TextView's content.

What you are looking for is the layout_gravity.

like image 199
Octavian A. Damiean Avatar answered Oct 21 '22 14:10

Octavian A. Damiean