//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. HDU 3709 Balanced Number(数位DP)题解

    思路: 之前想直接开左右两边的数结果爆内存... 枚举每次pivot的位置,然后数位DP,如果sum<0返回0,因为已经小于零说明已经到了pivot右边,继续dfs只会越来越小,且dp数组会炸 ...

  2. Kubernetes证书相关(CFSSL)

    CFSSL是CloudFlare开源的一款PKI/TLS工具. CFSSL 包含一个命令行工具 和一个用于 签名,验证并且捆绑TLS证书的 HTTP API 服务. 使用Go语言编写. Github ...

  3. [问题解决]win10误删启动项(BCD)(HP电脑亲测,无需启动盘,并非重装系统)

    昨天使用easyBCD软件,开始不太懂,手残把win10的引导删除了,后来发现电脑关机总是变成重启,无奈强制关机.今天重启了一下电脑,发现电脑已经无法打开了,这才明白昨天是误删了win10的BCD. ...

  4. 2017NOIP模拟赛-科普基地

    今天回来打的第一场NOIP难度的试题,结果惨不忍睹.写一下每道题的做法,然后每道题犯的__弱智__错误 UPD:2018.9.15 突然这篇题解就变成很多大佬要看的了,因为之前是写给自己看的,所以写的 ...

  5. h.264_javascript_资料

    1. 用ffmpeg制作推流工具,实现推流系统声音和桌面到rtmp服务器-CSDN论坛-CSDN.NET-中国最大的IT技术社区.html http://bbs.csdn.net/topics/392 ...

  6. VNC Viewer连接Cent OS 时的 复制粘帖 功能

    虽然 VNC Viewer 比起 vsphere Client 来, 感觉性能差一点. 但毕竟也是个选择. 找了一下 它的这个 功能. 运行一下 vncconfig & 就可以了. 实测好用. ...

  7. 一定要用Windows自带的记事本编辑 applicationHost.config

    访问IIS时,发生了一个 HipIISEngineStub.dll不能读取的问题.(Windows Event可以确认). 很容易在网上找到了对策, http://chrisfleischhacker ...

  8. netty做集群 channel共享 方案

    netty做集群 channel如何共享? 方案一: netty 集群,通过rocketmq等MQ 推送到所有netty服务端, channel 共享无非是要那个通道都可以发送消息向客户端, MQ广播 ...

  9. 2018-2019-2 20165332《网络攻防技术》Exp5 MSF基础应用

    2018-2019-2 20165332<网络攻防技术>Exp5 MSF基础应用 1.基础问题回答 用自己的话解释什么是exploit,payload,encode. exploit:就是 ...

  10. Coderforce 560B-Gerald is into Art

    题目大意:给了三个矩形的长和宽,问第一个能否把其他两个装在内部,要求内部之间不重叠,不出界(可重边)? 题目分析:这道题...考虑不够全面导致比赛时没有出来...当时,就是觉得自己的代码很完美,不可能 ...