RelativeLayout 根布局里有一个子布局预期一直展示,但子布局RelativeLayout被 覆盖了

原因一句话 LinearLayout 宽高都是 match_parent,又在 RelativeLayout默认不设置任何相对位置 ,于是它把父布局空间全部占满,之前靠 align*margin 定位的子控件自然被盖住。


解决思路(3 选 1)

  1. 让 LinearLayout 只占剩余区域,而不是全屏 给前面那个需要"一直展示"的控件一个 id,然后让 LinearLayout 用剩余规则:
xml 复制代码
<!-- 顶部固定条,始终可见 -->
<TextView
    android:id="@+id/title"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:text="标题栏"
    android:gravity="center"
    android:background="@color/colorPrimary"/>

<!-- 内容区,只占剩余 -->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_below="@id/title"      <!-- 关键:在标题下方 -->
    android:orientation="vertical">
    <!-- 你的内容 -->
</LinearLayout>
  1. 把 LinearLayout 改成 wrap_content 或固定值 如果你只是想弹个面板,就别让它 match_parent
xml 复制代码
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:orientation="vertical">
  1. layout_weight(嵌套一层 LinearLayout) 顶层改成横向或纵向 LinearLayout,把"始终展示"的 view 放 weight=0,内容区放 weight=1 即可。

一句话总结 别让 LinearLayout 又满屏又不相对定位 ;给前面控件加 id,再用 layout_below / layout_above / layout_alignParentBottom 等规则把空间切出来,就不会覆盖。

相关推荐
折哥的程序人生 · 物流技术专研3 小时前
第4篇:Lambda 简化策略模式(Java 8+)
java·设计模式·策略模式·函数式编程·lambda·代码简化·扩充系列
私人珍藏库4 小时前
[Android] PeakFinder AR v4.8.89 (山峰全景识别+增强现实山峰查看器)
android·人工智能·智能手机·ar·工具·软件
researcher-Jiang4 小时前
高性能计算之OpenMP——超算习堂学习1
android·java·学习
随风一样自由5 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
alexhilton5 小时前
Kotlin DSL深度解析:从Gradle脚本到构建你自己的DSL
android·kotlin·android jetpack
IMPYLH5 小时前
HTML 的 <data> 元素
前端·html
烽火聊员5 小时前
查看Android Studio错误日志
android·ide·android studio
西门吹-禅6 小时前
java springboot N+1问题
java·开发语言·spring boot
YHHLAI6 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
DLYSB_6 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯