Подтвердить что ты не робот

Android: Выровняйте кнопку вправо -право экрана с помощью FrameLayout?

Я пытаюсь поместить элементы управления масштабированием карты в нижнем правом углу экрана. Я мог бы сделать это с RelativeLayout, используя как alignParentBottom="true", так и alignParentRight="true", но с Framelayout я не нашел таких атрибутов. Как выровнять его в правом нижнем углу экрана?

4b9b3361

Ответ 1

На самом деле это возможно, несмотря на то, что сказано в других ответах. Если у вас есть FrameLayout и вы хотите поместить дочерний элемент в нижнюю часть, вы можете использовать android:layout_gravity="bottom", и это приведет к выравниванию этого дочернего элемента в нижней части FrameLayout.

Я знаю, что это работает, потому что я использую его. Я знаю, что поздно, но это может пригодиться другим, поскольку это занимает верхние позиции в google

Ответ 2

Я также столкнулся с этой ситуацией и понял, как это сделать, используя FrameLayout. Следующий вывод создается кодом, приведенным ниже.

Some right-bottom aligned text showing up over an image using 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?