FrameLayout 内的控件如何设置位置
发布网友
发布时间:2022-05-11 03:35
我来回答
共4个回答
热心网友
时间:2024-02-08 17:40
所有的子元素将会固定在屏幕的左上角;不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。
简单来说:FrameLayout中的子元素总是以屏幕的左上角层叠在一起。在FrameLayout布局里面android:layout_margin的各种属性必须依赖于android:layout_gravity,也就是说,要想margin生效,必须设定view的layout_gravity属性。
下面的配置将2个控件显示在屏幕的中间:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 宽
android:layout_height="fill_parent" 高
>
<LinearLayout
android:layout_width="200dip" 宽
android:layout_height="wrap_content" 高
android:orientation="vertical" 垂直
android:gravity="center" 居中
android:layout_gravity="center" 居中
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/empty3"
/>
<TextView
android:layout_width="fill_parent" 宽
android:layout_height="wrap_content" 高
android:layout_marginTop="10dp"
android:text="暂无记录"
android:textColor="@color/gray_dark"
android:textSize="@dimen/font_middle"
android:gravity="center"
/>
</LinearLayout>
</FrameLayout>
热心网友
时间:2024-02-08 17:40
framelayout是一层一层的布局,默认都是放上去的控件都是以左上角为基准的。
热心网友
时间:2024-02-08 17:41
把帧布局 加ID后在代码里获取出来,
eg: FramLayout parent = (FramLayout ) findViewById(R.id.xx)
然后 “另外一个xml文件
” 用布局解析成Viwe 对象,eg: View xmlView = LayoutInflate.inflate(R.layout.xx);
再在代码里,把xmlView 添加进帧布局里,parent.addView(xmlView),大致如此。仅供参考
热心网友
时间:2024-02-08 17:41
framelayout比较特殊,android提供了很多其他的容器,需要搭配使用