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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux挂载磁盘后只读权限,linux挂载磁盘就变只读怎么解决

    Linux挂载磁盘后只读权限,linux挂载磁盘就变只读怎么解决Linux系统挂载存储变成只读的解决方案:1、mount:用于查看哪个模块输入只读,一般显示为:[root@localhost~]#mount/dev/cciss/c0d0p2on/typeext3(rw)procon/proctypeproc(rw)sysfson/systypesysfs(rw)devptson/dev/ptstypedevpts(r…

    2022年6月19日
    144
  • Java死锁排查和Java CPU 100% 排查的步骤整理和OOM FullGc案例

    工欲善其事,必先利其器简介本篇整理两个排查问题的简单技巧,一个是java死锁排查,这个一般在面试的时会问到,如果没有写多线程的话,实际中遇到的机会不多;第二个是java cpu 100%排查,这个实际的开发中,线的应用出现这个问题可能性比较大,所以这里简单总结介绍一下,对自己学习知识的一个整理,提高自己的解决问题能力。一、Java死锁排查通过标题我们就要思考三个问题…

    2022年2月27日
    44
  • 如何使用google搜索_谷歌在线搜索

    如何使用google搜索_谷歌在线搜索准确搜索排除关键字用EitherOR或进行搜索同义词搜索站内搜索星号的用处在两个数值之间进行搜索在网页标题链接和主体内容中搜索关键词搜索相关网站组合使用上述搜索技巧1.准确搜索最简单和最有效的搜索方式是给关键词加上双引号,这样搜索引擎会反馈和关键词完全吻合的搜索结果。例如,搜索JoeBloggs时,搜索引擎会返回同时跟Joe和Bloggs相关的结果,而搜索“J

    2025年10月23日
    1
  • 解决rsync 同步auth failed on module问题

    解决rsync 同步auth failed on module问题解决rsync同步authfailedonmodule问题

    2025年7月26日
    2
  • 虚拟存储技术「建议收藏」

    虚拟存储技术「建议收藏」一.实现内存扩充的技术:(1)覆盖技术:在程序运行中,在不同时刻把同一个存储区分配给不同程序段和数据段,实现存储区共享。适用于连续存储(单一连续区分配,分区)如图BDG共享一个存储区(三个进程不同时发生),CEFH同理(2)交换技术(对换技术):1.定义:将内存中某进程的的程序和数据(全部或部分)写入外存的交换区,从而腾出内存空间给其他进程使用。2.相关涉及知识

    2022年9月26日
    1
  • Qt是什么?Qt简介(非常全面)

    Qt是什么?Qt简介(非常全面)Qt是什么?Qt简介(非常全面)Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开发库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序,当然也可以开发不带界面的命令行(CommandUserInterface,CUI)程序。Qt是纯C++开发的,所以学好C++非常有必要,对于不了解C++的读者,我建议先阅读《C语言教程》,再阅读《C++教程》。C++是在C语言的基础上发展起来的,学完C语言就学了C++的一半了。Q

    2022年5月13日
    64

发表回复

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

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