RelativeLayout中子控件改变layoutParams无效

RelativeLayout中子控件改变layoutParams无效布局代码:

大家好,又见面了,我是你们的朋友全栈君。

布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <SurfaceView
        android:id="@+id/sv"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    
</RelativeLayout>

java代码动态改变SurfaceView大小:

ViewGroup.LayoutParams layoutParams = mSurfaceView.getLayoutParams();
layoutParams.width = width;
mSurfaceView.setLayoutParams(layoutParams);

发现并没有用,但是在SurfaceView外层再嵌套一层FrameLayout就可以了,调整后布局如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <SurfaceView
            android:id="@+id/sv"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </FrameLayout>

</RelativeLayout>

原因不详,知道的小伙伴麻烦留言一下。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160836.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 51单片机 LED点亮、闪烁以及流水灯实现

    51单片机 LED点亮、闪烁以及流水灯实现51单片机学习初体验,点亮第一只LED灯和让其闪烁,用四种方法实现流水灯。

    2022年5月13日
    50
  • 前端代码自动生成工具_车辆识别代码生成器

    前端代码自动生成工具_车辆识别代码生成器场景1.CodeFun是什么CodeFun是一款UI设计稿智能生成源代码的工具,支持微信小程序端、移动端H5和混合APP,上传Sketch、PSD等形式的设计稿,通过智能化技术一键生成可维护的前端代码.2.学习成本高吗?对于前端工程师来说,几乎没有学习成本。对于用惯了蓝湖/摹客的前端工程师来说,CodeFun使用流程与前者几乎一致:设计师上传完稿件后,工程师打开界面,选择任意需要的UI区域拷贝走想要的代码即可,只是从原来看标注变成了直接拷贝代码。对于设计师来说,完全不需要遵循某些设计规范

    2022年4月19日
    110
  • Windows命令之ftp命令「建议收藏」

    Windows命令之ftp命令「建议收藏」FTP(FileTransferProtocol,文件传输协议)是TCP/IP协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。windows终端默认安装ftp客户端,我们可以通过ftp命令执行文件的上传和下载。博文环境如下

    2022年9月21日
    4
  • vue中使用EasyPlayer.js教程[通俗易懂]

    vue中使用EasyPlayer.js教程[通俗易懂]0前言github:EasyPlayer.js一定要是legacy分支哦,master分支是EasyWasmPlayer.js,有些功能不支持的1教程首先npm安装EasyPlayer、copy-webpack-pluginps:copy-webpack-plugin版本不能大于6.0,否则会出很多很多问题npminstall@easydarwin/easyplayer–savenpminstallcopy-webpack-plugin@5.1.2–save

    2022年6月17日
    156
  • 数据库连接方案比拼

    数据库连接方案比拼

    2021年7月24日
    51
  • Double 转 String

    Double 转 String场景Double整数部分超6位时用科学计数法表示,如123456789.50表示为1.234567895E8解决doubled=123456789.50;DecimalFormatformat=newDecimalFormat(&amp;amp;amp;amp;quot;#.00&amp;amp;amp;amp;quot;);Stringstr=format.format(d);System.out.println(str);…

    2025年8月6日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号