//rl_pager 是RelativeLayout
findViewById(R.id.rl_pager).setLayoutParams(new RelativeLayout.LayoutParams(width, width));

当我这么设置layoutparams的时候报错了,原因:

setLayoutParams(params) 这个params 是父布局的 layout,并非自身的layout。。。。

因为我这里 rl_pager的父节点是 linearlayout 所以 我这里正确的应该是:

//rl_pager 是RelativeLayout
findViewById(R.id.rl_pager).setLayoutParams(new LinearLayout.LayoutParams(width, width));

下面一段对话,参考下吧:

代码设置RelativeLayout宽度时报错?0

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/linearLayout_parent"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. android:gravity="center_horizontal"
  7. android:orientation="vertical" >
  8. <RelativeLayout
  9. android:id="@+id/relativeLayout1"
  10. android:layout_width="match_parent"
  11. android:layout_height="match_parent">
  12. 。。。。。

代码中需要对RelativeLayout的宽度进行设定:

  1. RelativeLayout relativeLayout = (RelativeLayout)this.findViewById(R.id.relativeLayout1);
  2. RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(cell_Width, LayoutParams.MATCH_PARENT);
  3. param.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1);
  4. relativeLayout.setLayoutParams(param);

但是报错:

  1. 04-01 23:49:13.572: E/AndroidRuntime(1246): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
  2. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:587)
  3. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:519)
  4. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.view.View.measure(View.java:10828)
  5. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351)
  6. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
  7. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.view.View.measure(View.java:10828)
  8. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:764)
  9. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:519)
  10. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.view.View.measure(View.java:10828)
  11. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351)
  12. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
  13. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:1889)
  14. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.view.View.measure(View.java:10828)
  15. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.view.ViewRoot.performTraversals(ViewRoot.java:938)
  16. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.view.ViewRoot.handleMessage(ViewRoot.java:2040)
  17. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.os.Handler.dispatchMessage(Handler.java:99)
  18. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.os.Looper.loop(Looper.java:132)
  19. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at android.app.ActivityThread.main(ActivityThread.java:4123)
  20. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at java.lang.reflect.Method.invokeNative(Native Method)
  21. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at java.lang.reflect.Method.invoke(Method.java:491)
  22. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
  23. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
  24. 04-01 23:49:13.572: E/AndroidRuntime(1246):     at dalvik.system.NativeStart.main(Native Method)

查了些资料,比如:http://blog.csdn.net/id19870510/article/details/6398049 
说是需要设置父layout,但是试了后依然报错,请问到底如何更改? 
谢谢

2013年4月02日 00:01

tiwenzhuanyong 

0 0 4
 
 
 

1个答案按时间排序按投票排序

00

采纳的答案

relativeLayout 是LinearLayout的子控件~它的layoutparam应该是LinearLayout给他的所以应该是LinearLayout.LayoutParam ~~~~不知道你理解了没~~~如果relativeLayout 有子控件的话~那它的子控件用的的就是relativeLayout 给他们的RinearLayout.LayoutParam

关于layoutparam 请铭记。。。。的更多相关文章

  1. 玩转docker

    开篇先论赌 (组词,赌博,....),时刻,每天都在赌! 何为赌?仁者见仁,智者必定又有一番见解,保持沉默,意见保留; ——改变思维模式,Ruiy让赌赢在“思维”!!!; 存在在IT界Ruiy定格,即 ...

  2. Linux编程之PING的实现

    PING(Packet InterNet Groper)中文名为因特网包探索器,是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICM ...

  3. Docker实战:更轻松、更愉快、更高效

    编者按:借助Docker,我们可以更容易地进行web应用部署,而同时不必头疼于项目依赖.环境变量以及各种配置问题,Docker可以快捷.高效地处理好这一切.而这也是本教程所要实现的主要目的.以下是作者 ...

  4. January 29 2017 Week 5 Sunday

    In order to be irreplaceable one must always be different. 若想无可替代,必须与众不同. If all your skills or pers ...

  5. (62)通信协议之一protobuf

     Protobuf协议特点分析 KingKa.吴永聪 1.protobuf是什么? protobuf(Google Protocol Buffers)是Google提供的一个具有高效的协议数据交换格式 ...

  6. iPhone Anywehre虚拟定位提示“后台服务未启动,请重新安装应用后使用”的解决方法

    问题描述: iPhone越狱了,之后在Cydia中安装Anywhere虚拟定位,但是打开app提示:后台服务未启动,请重新安装应用后使用. 程序无法正常使用... 解决方法: 打开Cydia-已安装, ...

  7. 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...

  8. SQL Server 无法连接到服务器。SQL Server 复制需要有实际的服务器名称才能连接到服务器。请指定实际的服务器名称。

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html SQL性能优化汇总篇:http://www.cnblogs.com/dunit ...

  9. 【干货分享】流程DEMO-资产请购单

    流程名: 资产请购  业务描述: 流程发起时,会检查预算,如果预算不够,流程必须经过总裁审批,如果预算够用,将发起流程,同时占用相应金额的预算,但撤销流程会释放相应金额的预算.  流程相关文件: 流程 ...

随机推荐

  1. 斜率优化DP学习笔记

    先摆上学习的文章: orzzz:斜率优化dp学习 Accept:斜率优化DP 感谢dalao们的讲解,还是十分清晰的 斜率优化$DP$的本质是,通过转移的一些性质,避免枚举地得到最优转移 经典题:HD ...

  2. webpack执行中出现 ERROR in Path must be a string. Received undefined

    执行webpack时出现错误信息 ERROR in Path must be a string. Received undefined 原因在于我的node.js版本太高了,目前node版本为6.10 ...

  3. ZOJ 1276 Optimal Array Multiplication Sequence(矩阵连乘)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1276 裸的矩阵连乘问题. #include<iostream> ...

  4. shell 字符串加入变量

    your_name='runoob' str="Hello, I know you are \"$your_name\"! \n" echo $str

  5. 使用ARouter遇到的坑

    跨模块跳转不能跳转 需要被跳转的模块或者说使用了ARouter注解的模块都要加上这个 dependencies{    annotationProcessor rootProject.ext.arou ...

  6. MySQL分页查询大数据量优化方法

    方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N适应场景: 适用于数据量较少的情况(元组百/千级)原因/缺点: ...

  7. spring boot: 热部署(一) run as – java application (spring-loader-1.2.4.RELEASE.jar)

    spring boot: 热部署(一) run as – java application (spring-loader-1.2.4.RELEASE.jar) 如果使用的run as – java a ...

  8. Getting 'The AWS Access Key Id you provided does not exist in our records' error with Amazon MWS

    I upgraded from one version of Amazon MWS (marketplace web service) version https://mws.amazonservic ...

  9. ActiveStorage. 英文书Learnrails5.2的案例,看如何放到云上。

    ActiveStorage. 英文书Learnrails5.2的案例 本例子目标:增加一个avatar image给每个用户. 准备: 需要安装Imagemagick software.它可以crea ...

  10. SVN 提交代码时强制加入注释内容

    参考: 关于SVN提交强制加入注释 方式一是使用的服务器脚本,对所有SVN用户生效. 方式二是使用本地钩子,仅对当前SVN用户生效.