我试图把地图的缩放控制在屏幕的右下角。我可以同时使用 alignParentBottom="true"和 alignParentRight="true"使用 RelativeLayout,但是在 Framelayout 中我没有找到任何这样的属性。如何将其对齐到屏幕右下角?
alignParentBottom="true"
alignParentRight="true"
你不能使用 FrameLayout。
从规格:
Http://developer.android.com/reference/android/widget/framelayout.html
”FrameLayout 旨在屏蔽屏幕上显示单个项目的区域。你可以在一个 FrameLayout 中添加多个子节点,但是所有的子节点都被固定在屏幕的左上角。”
为什么不使用 RelativeLayout?
这可以通过使用 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。
FrameLayout
android:layout_gravity="bottom"
我知道它有用,因为我在用它。我知道是晚了,但它可能会方便其他人,因为这排名在谷歌的最高位置
我也遇到了这种情况,并且找到了如何使用 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"对我有用
android:layout_gravity="bottom|right"
有两种方法:
1)使用框架布局
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:
使用 bottom|right作为元素的 layout_gravity值,您希望在父布局的右下角对齐该元素。
bottom|right
layout_gravity