Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to specify multiple gravity values in spinner item custom_style.xml?

I have textview.xml, which is the item style for spinners.

<TextView   xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="fill_parent"   android:layout_height="fill_parent"   android:gravity="left|center_horizontal"   android:textSize="18sp"> </TextView> 

I know that it is possible to specify both (Gravity.LEFT | Gravity.CENTER_HORIZONTAL), but in xml that doesn't work - text is moved to the left only.

like image 316
87element Avatar asked Mar 08 '11 14:03

87element


People also ask

What is gravity in XML?

Gravity and layout_gravity both are the XML attributes. The android:gravity attribute is used to arrange the position of the content inside a view (for example text inside a Button widget). The android:layout_gravity is used to arrange the position of the entire View relative to it's container.

What attribute sets gravity?

The android:layout_gravity is an attribute that sets the gravity of the View or Layout in its parent. The android:layout_gravity is used to control the gravity of an individual view in a container. It is the outside gravity of the View.


2 Answers

87element,

I believe you intended to use layout_gravity you are only using gravity??

Yes, you can combined two of these layout_gravity attributes together with the '|' as mentioned in the documentation: http://developer.android.com/reference/android/R.attr.html#layout_gravity

But even using layout_gravity instead of just gravity (as adamp stated in his comment), the settings you are trying to combine don't make sense. You are telling it basically to align left and center along the same row. Both left and center_horizontal in this case refer to horizontal positions.

Where are you trying to align the TextView relative to the parent?

Your parent layout is like a grid where you can select a position:

|[ 1 ] [ 2 ] [ 3 ]|

|[ 4 ] [ 5 ] [ 6 ]|

|[ 7 ] [ 8 ] [ 9 ]|

  1. Top-Left: android:layout_gravity="top|left"

  2. Top-Center: android:layout_gravity="top|center_horizontal"

  3. Top-Right: android:layout_gravity="top|right"

  4. Center-Left: android:layout_gravity="center_vertical|left"

  5. Very Center: android:layout_gravity="center"

  6. Center-Right: android:layout_gravity="center_vertical|right"

  7. Bottom-Left: android:layout_gravity="bottom|left"

  8. Bottom-Center: android:layout_gravity="bottom|center_horizontal"

  9. Bottom-Right: android:layout_gravity="bottom|right"

Hope this helps!

like image 157
Will Tate Avatar answered Sep 20 '22 17:09

Will Tate


Just in case anyone else was as stupid as me. Don't forget to remove spaces. android:gravity="center_horizontal|bottom" but android:gravity="center_horizontal | bottom" isn't valid.

like image 22
Walter Kimaro Avatar answered Sep 18 '22 17:09

Walter Kimaro