问题描述
- 安卓开发TextView的动态设置疑问 10C
- TextView tv1 = (TextView)findViewById(xxx1);
TextView tv2 = (TextView)findViewById(xxx2);
tv1.setWidth(tv2.getWidth());
为什么看到的效果是tv1设的要比tv2短很多?不是应该一样长的吗?
解决方案
估计你是把代码放在onCreate了,在onCreate中getwidth是无法获取真实值的。需要在onResume执行完后。
可以用handle和runnable做一个延时处理设置宽度
解决方案二:
使用layoutparams 更靠谱
解决方案三:
想要获取到控件的大小需要控件加载好了才能获取到正确的大小,可以对控件设置加载监听。加载成功后再获取控件的大小就应该OK了。
解决方案四:
如果是在同一行上可以设置weight,不然如上所说。。
解决方案五:
如果是在同一行上可以设置weight,如果不在一行考虑通过Margin来控制。
解决方案六:
不明白你描述的什么东东,经过测试,不晓得想表明什么问题
解决方案七:
把上面的代码放在onPostCreate方法中可解决楼主的问题
解决方案八:
在onCreate 获取控件的宽度和高度 是不科学的。
控件还没绘制好,获取宽高是不行的。
可以参考如下方法:
http://blog.csdn.net/crazy1235/article/details/41806079
解决方案九:
onCreate 只适合用来做一些初始化的工作,onResume 方法调用时也是刚刚开始画界面而已,那时也是获取不了相关的View 的属性值。
可以像楼下那位哥们那样加个延时。
如果不想加延时,简单点的方法是,在 activity 的onWindowFocusChanged()方法里设置,当界面画完后,会调用这个方法。不过要注意,这个方法顾名思义是每次window 的焦点变化都会调用
所以如果楼主只想在第一次进入时设置,要加些判断条件
解决方案十:
你是不是给TextView设置了padding
时间: 2024-11-10 00:01:00