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

AndroidAndroid LayoutGravity

Android Problem Overview


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.

Android Solutions


Solution 1 - Android

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!

Solution 2 - Android

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Question87elementView Question on Stackoverflow
Solution 1 - AndroidWill TateView Answer on Stackoverflow
Solution 2 - AndroidWalter KimaroView Answer on Stackoverflow