Android:使用FrameLayout将按钮对齐到屏幕的右下角?

时间:2010-11-08 12:02:56

标签: android layout

我正在尝试将地图的缩放控件放在屏幕的右下角。我可以使用alignParentBottom="true"alignParentRight="true"同时使用RelativeLayout,但是使用Framelayout我没有找到任何此类属性。如何将其与屏幕右下方对齐?

10 个答案:

答案 0 :(得分:233)

实际上它是可能的,尽管在其他答案中有所说。如果您有FrameLayout,并且想要将子项目放在底部,则可以使用android:layout_gravity="bottom",这样就可以将该子项与FrameLayout的底部对齐。

我知道它有效,因为我正在使用它。我知道已经很晚了,但是对于其他人来说它可能会派上用场,因为它在Google上排名靠前。

答案 1 :(得分:45)

我也遇到了这种情况并想出了如何使用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>

更改边距值以调整图像上的文本位置。删除边距可能会使文本有时会脱离视图。

答案 2 :(得分:36)

可以使用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>

答案 3 :(得分:15)

设置android:layout_gravity="bottom|right"为我工作

答案 4 :(得分:9)

两种方法:

1)使用框架布局

android:layout_gravity="bottom|right"

2)使用相对布局

android:layout_alignParentRight="true"
android:layout_alignParentBottom="true" 

答案 5 :(得分:4)

android:layout_gravity="bottom"

答案 6 :(得分:3)

如果你想尝试使用java代码。你去吧 -

    final LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, 
                                             LayoutParams.WRAP_CONTENT);
    yourView.setLayoutParams(params);
    params.gravity = Gravity.BOTTOM; // set gravity

答案 7 :(得分:2)

您可以向FrameLayout添加不可见的TextView。              

    <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 :(得分:0)

有很多方法可以使用android studio的activity.xml页面的约束窗口小部件来完成此操作。

两种最常见的方法是:

  1. 选择按钮视图并调整其边距。
  2. 转到“所有属性”,然后转到“ layout_constraints”,然后选择
    • layout_constraintBottom_toBottomOf_parent
    • layout_constraintRight_toRightOf_parent

答案 9 :(得分:-3)

你无法使用FrameLayout。

来自规范:

http://developer.android.com/reference/android/widget/FrameLayout.html

“FrameLayout旨在屏蔽屏幕上的某个区域以显示单个项目。您可以将多个子项添加到FrameLayout,但所有子项都挂在屏幕的左上角。”

为什么不使用RelativeLayout?