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

我试图把地图的缩放控制在屏幕的右下角。我可以同时使用 alignParentBottom="true"alignParentRight="true"使用 RelativeLayout,但是在 Framelayout 中我没有找到任何这样的属性。如何将其对齐到屏幕右下角?

168846 次浏览

你不能使用 FrameLayout。

从规格:

Http://developer.android.com/reference/android/widget/framelayout.html

”FrameLayout 旨在屏蔽屏幕上显示单个项目的区域。你可以在一个 FrameLayout 中添加多个子节点,但是所有的子节点都被固定在屏幕的左上角。”

为什么不使用 RelativeLayout?

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

事实上这是有可能的,尽管在其他答案中已经说过了。如果您有一个 FrameLayout,并希望定位一个子项目的底部,您可以使用 android:layout_gravity="bottom",这将对齐该子项目的底部的 FrameLayout

我知道它有用,因为我在用它。我知道是晚了,但它可能会方便其他人,因为这排名在谷歌的最高位置

android:layout_gravity="bottom"

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

更改边距值以调整图像上的文本位置。删除页边距有时会使文本退出视图。

设置 android:layout_gravity="bottom|right"对我有用

有两种方法:

1)使用框架布局

android:layout_gravity="bottom|right"

2)使用相对布局

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

可以将不可见的 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>

如果您想尝试使用 Java 代码

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

有许多方法可以使用 android Studio 的 activity.xml 页面的约束小部件来实现这一点。

Two most common methods are:

  1. 选择按钮视图并调整其边距。
  2. 转到“ All Attribute”,然后转到“ outs _ ”,然后选择
    • Layout _ constraintBottom _ toBottomOf _ parent
    • Layout _ constraintRight _ toRightOf _ parent

使用 bottom|right作为元素的 layout_gravity值,您希望在父布局的右下角对齐该元素。

android:layout_gravity="bottom|right"