论坛首页 移动开发技术论坛

好奇怪啊!TextView中setWidth方法不起作用

浏览 5412 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2009-12-09   最后修改:2010-06-13
   今天遇到一个很奇怪的问题,我想在layout加载完以后重新再指定一些UI部件的尺寸。在指定TextView时遇到了一些奇怪的问题。

   竟然调用TextView部件的setWidth不起作用,可是文档中明明告诉我们是可以的。

  

   不过通过调用TextView部件上面的getLayoutParams().width来设定,结果行了。类似地setHeight方法也应该不好使,同样地使用getLayoutParams().height去设定就可以。
 
   andoird中指定View的尺寸一般都是通过LayoutParams来设定的,但TextView这个部件中扩展了setWidth、setHeight等方法,我觉得应该是出于这类部件的特殊性吧,所以才提供了这样可以直接设定TextView
尺寸的方法,方便开发者使用。但是为什么就不起作用了,我自己还怀疑过是不是和自己使用的时机有关系,我所有的情况都大概试了一遍,都不好用。可是文档上明明这么写道(以setWidth为例):
引用
Makes the TextView exactly this many pixels wide. You could do the same thing by specifying this number in the LayoutParams.


   我理解这句话的意思是,可以设定TextView具体有多少像素宽,你也能通过指定LayoutParams中的数作同样的事情。

   好奇怪啊!
  • 大小: 11.2 KB
   发表时间:2009-12-11  
估计你的txtview的width属性是fillcontent的。
0 请登录后投票
   发表时间:2009-12-12  
呵呵,起初我其实这么想的,可是我还检查了一下,是wrap_content.
0 请登录后投票
   发表时间:2009-12-12  
我再看看,也许是自己哪块弄错了。呵呵,多谢。
0 请登录后投票
   发表时间:2009-12-13  
Qaohao 写道
呵呵,起初我其实这么想的,可是我还检查了一下,是wrap_content.

wrap_content和fill_parent都是viewGroup帮忙算好长宽的。这时候setWidth和setHeight都没用。
0 请登录后投票
   发表时间:2009-12-16  
恩。楼上说的这个我明白,wrap_content和fill_parent是自动给你算好宽度,但是当在程序编译期,我是想重新指定宽度,这样的想法是合情的也是合理的,查了setWidth的文档,告诉我是可以做到修改的,可是事实上不能修改,而我通过使用该部件的LyaoutParams.width就成功地重新指定了宽度。
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics