//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 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. class []的用法

    span[class='test']    =>匹配所有带有class类名test的span标签 span[class *='test']  =>匹配所有包含了test字符串的class类 ...

  2. SpringBoot全局异常处理方式

    每个项目全局异常处理非常重要, 今天在处理项目架构的时候添加了一个全局异常处理. 大概三种异常情况: 一:在进入Controller之前,譬如请求一个不存在的地址,404错误. 二:在执行@Reque ...

  3. 何时使用MQ ?

    何时使用MQmq作为一种基础中间件在互联网项目中有着大量的使用. 一种技术的产生自然是为了解决某种需求,通常来说是以下场景: 需要跨进程通信:B系统需要A系统的输出作为输入参数.当A系统的输出能力远远 ...

  4. 6-9 😢 5小时的debug: 从rails 命令运行超慢开始->删除rails->删除ruby->删除rvm->安装上rvm->安装上ruby

    上午,莫名其妙的rails app不能用了,rails -v一查发现不存在.ruby -v发现是2.0的版本.很着急上火,因为很少使用过rvm这个ruby版本控制器.所以照官网文档.从新安装ruby, ...

  5. URAL 1106 Two Teams (DFS)

    题意 小组里有N个人,每个人都有一个或多个朋友在小组里.将小组分成两个队伍,每个队伍的任意一个成员都有至少一个朋友在另一个队伍. 思路 一开始觉得和前几天做过的一道2-sat(每个队伍任意两个成员都必 ...

  6. springboot模糊查询

    在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...

  7. Javascript 面向对象编程(补充):封装

    Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...

  8. 【hive】求日期是星期几

    在Hive原生版本中,目前并没有返回星期几的函数.除了利用java自己编写udf外,也可以利用现有hive函数实现. 方法格式: pmod(datediff('#date#', '任意年任意一个星期日 ...

  9. MAC环境下 Android P 系统源码下载、编译、导入到AS、Pixel2xl刷机 实战

    一.下载源码 1 . 确保主目录下有一个 bin/ 目录,并且该目录包含在路径中: mkdir ~/bin PATH=~/bin:$PATH 2 . 下载 Repo 工具,并确保它可执行: curl ...

  10. SELU︱在keras、tensorflow中使用SELU激活函数

    arXiv 上公开的一篇 NIPS 投稿论文<Self-Normalizing Neural Networks>引起了圈内极大的关注,它提出了缩放指数型线性单元(SELU)而引进了自归一化 ...