Ответ 1
Таким образом, мое исправление для этой проблемы заключается только в том, чтобы использовать составную возможность вывода текста. Я просто разбил кнопку и использовал drawableRight, чтобы показать значок поиска.
Я пытаюсь горизонтально центрировать несколько представлений в 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 взгляда бок о бок, которые нужно сосредоточить вместе. Попытка оптимизировать это, поэтому я хочу избежать макетов раскроя, особенно Linear, внутри друг друга.
Есть ли что-то очевидное, что мне не хватает? Я думал, что этот атрибут сделан для этой ситуации.
Таким образом, мое исправление для этой проблемы заключается только в том, чтобы использовать составную возможность вывода текста. Я просто разбил кнопку и использовал drawableRight, чтобы показать значок поиска.
Я ответил на аналогичную проблему с тремя представлениями без использования вложенных ViewGroups.
fooobar.com/questions/169087/...
Это проверено в 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.