RelativeLayout центр тяжести не работает
Я пытаюсь горизонтально центрировать несколько видов в RelativeLayout
это основа.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:background="@android:color/transparent" >
Это не работает Я поставил centerInParent
в true
для одного из взглядов, и это сработало. Тем не менее, я не могу использовать это решение, потому что у меня есть 2 вида бок о бок, которые должны быть центрированы вместе. Попытка оптимизировать это так, чтобы я хотел избежать раскроя раскладок, особенно линейных, внутри друг друга.
Есть ли что-то очевидное, чего мне не хватает? Я думал, что этот атрибут создан для этой ситуации.
4 ответа
Так что я решил эту проблему, просто используя сложную рисованную функцию textview. Я просто нажал кнопку и использовал drawableRight, чтобы показать значок поиска.
Я ответил на аналогичную проблему, включающую три представления, не используя вложенные ViewGroups.
Это проверено в API 11.
Для двух видов горизонтальный корпус:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:background="@android:color/black"
>
<Button
android:id="@+id/apply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="APPLY"
android:textSize="20sp"
/>
<Button
android:id="@+id/undo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="UNDO"
android:textSize="20sp"
android:layout_toRightOf="@id/apply"
/>
</RelativeLayout>
Для двухпозиционного вертикального корпуса:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:background="@android:color/black"
>
<Button
android:id="@+id/apply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="APPLY"
android:textSize="20sp"
/>
<Button
android:id="@+id/undo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="UNDO"
android:textSize="20sp"
android:layout_below="@id/apply"
/>
</RelativeLayout>
Вам нужно будет вложить несколько макетов вместе. Для центрирования чего-либо в RelativeLayout вы используете android:layout_centerInParent="true"
на ребенка. Если вы попытаетесь отцентрировать нескольких детей, они окажутся под / над друг другом.
Поэтому, например, вы можете использовать LinearLayout с двумя представлениями как дочерний элемент для RelativeLayout, причем LinearLayout имеет android:orientation="horizontal"
а также android:layout_centerInParent="true"
, LinearLayout теперь должен быть центрирован в RelativeLayout с двумя дочерними элементами рядом друг с другом.
Оберните два представления в LinearLayout, а затем отцентрируйте LinearLayout в RelativeLayout, как вы делали для отдельного TextView.