Иногда вы можете установить alignLeft
и alignRight
на желаемый вид, а затем использовать гравитацию на элементе, который вы хотите центрировать.
Например:
android:layout_below="@+id/firstLayout"
android:layout_alignLeft="@+id/firstLayout"
android:layout_aligntRight="@+id/firstLayout"
android:gravity="center"
Если компонент не является TextView
(или видом, в котором вам не нужен фон), вы можете обернуть его в FrameLayout
с указанными выше свойствами.
<MyView id="@+id/firstLayout" .. other props/>
<FrameLayout
... other props
android:layout_below="@+id/firstLayout"
android:layout_alignLeft="@+id/firstLayout"
android:layout_aligntRight="@+id/firstLayout"
android:gravity="center" >
<MyView id="@+id/myAlignedView" ..other props />
</FrameLayout>
Таким образом, нижний вид будет фреймом той же ширины, что и верхний, но внутри него будет вид с центром в ширину.
Конечно, это работает только тогда, когда вы знаете, какое изображение больше. Если нет, то, как ответил Ларанджейру, оберните оба содержимого в другой макет с центрированной гравитацией.