//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. 51Nod 1509 加长棒(隔板法)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1509 思路: 直接去解可行的方法有点麻烦,所以应该用总的方法去减去不可行 ...

  2. CPU上下文切换详解

    CPU上下文切换详解 原文地址,译文地址,译者: 董明鑫,校对:郑旭东 上下文切换(有时也称做进程切换或任务切换)是指CPU 从一个进程或线程切换到另一个进程或线程.进程(有时候也称做任务)是指一个程 ...

  3. 2018-2019-2 网络对抗技术 20165332 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165332 Exp2 后门原理与实践 - 实验内容 任务一:使用netcat获取主机操作Shell,cron启动 任务二:使用socat获取主机操作Shel ...

  4. 2-14 MySQL初步认识,及CentOS6.8环境,源码方式安装MySQL

    什么是数据库: 存放数据的仓库RDBMS-->(Relational Database Management System) 关系型数据库管理系统DBMS--->(Database Man ...

  5. HDU 4540 线性DP

    威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  6. qt忙等与非忙等

    非忙等: void delay(int msec) { QTime end = QTime::currentTime().addMSecs(msec); while( QTime::currentTi ...

  7. hashcode()和equals()方法

    (一)hashcode(): 当Set接收一个元素时根据该对象的内存地址算出hashCode,看它属于哪一个区间,再这个区间里调用equeals方法.这里需要注意的是:当俩个对象的hashCode值相 ...

  8. 作业要求20181023-4 Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 01

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284] 版本控制:https://git.coding.net/liuyy08 ...

  9. New Concept English Two 6 13

    $课文11 礼尚往来 105. I was having dinner at a restaurant when Tony Steele came in. 我正在一家饭馆吃饭,托尼.斯蒂尔走了进来. ...

  10. css3动画的原理 及 各种效果制作

    1. 制作小球弹动效果 在这篇文章中,我们将会去探究一下浏览器是如何去处理CSS Animations和CSS Transitions的,   c 以便使你在写一些动画效果之前就可以对该动画在浏览器中 ...