Я пытаюсь поместить элементы управления масштабированием карты в нижнем правом углу экрана. Я мог бы сделать это с RelativeLayout, используя как alignParentBottom="true"
, так и alignParentRight="true"
, но с Framelayout я не нашел таких атрибутов. Как выровнять его в правом нижнем углу экрана?
Android: Выровняйте кнопку вправо -право экрана с помощью FrameLayout?
Ответ 1
На самом деле это возможно, несмотря на то, что сказано в других ответах. Если у вас есть FrameLayout
и вы хотите поместить дочерний элемент в нижнюю часть, вы можете использовать android:layout_gravity="bottom"
, и это приведет к выравниванию этого дочернего элемента в нижней части FrameLayout
.
Я знаю, что это работает, потому что я использую его. Я знаю, что поздно, но это может пригодиться другим, поскольку это занимает верхние позиции в google
Ответ 2
Я также столкнулся с этой ситуацией и понял, как это сделать, используя FrameLayout. Следующий вывод создается кодом, приведенным ниже.
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/contactbook_icon"
android:layout_gravity="center" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="140"
android:textSize="12dp"
android:textColor="#FFFFFF"
android:layout_gravity="bottom|right"
android:layout_margin="15dp" />
</FrameLayout>
Измените значение поля, чтобы отрегулировать текстовое положение над изображением. Удаление поля может заставить текст иногда исчезать.
Ответ 3
Это может быть достигнуто с помощью RelativeLayout
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:src="@drawable/icon"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
Ответ 4
Настройка android:layout_gravity="bottom|right"
работала для меня
Ответ 5
Два способа сделать это:
1) Использование макета кадра
android:layout_gravity="bottom|right"
2) Использование относительной компоновки
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
Ответ 6
Android: layout_gravity = "снизу"
Ответ 7
вы можете добавить невидимый TextView в FrameLayout.
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="invisible"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/daily_delete_btn"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="DELETE"
android:layout_gravity="center"/>
<Button
android:id="@+id/daily_save_btn"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:text="SAVE"
android:layout_gravity="center"/>
</LinearLayout>
Ответ 8
Если вы хотите попробовать с java-кодом. Здесь вы идете -
final LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
yourView.setLayoutParams(params);
params.gravity = Gravity.BOTTOM; // set gravity
Ответ 9
Вы не можете сделать это с помощью FrameLayout.
Из spec:
http://developer.android.com/reference/android/widget/FrameLayout.html
"FrameLayout предназначен для блокировки области на экране, чтобы отобразить один элемент. Вы можете добавить несколько детей в FrameLayout, но все дети привязаны в верхнем левом углу экрана."
Почему бы не использовать RelativeLayout?