View多层嵌套问题

码界修真 2016-09-24 02:58:45
我现在父布局是个ViewGroup,里面用addView()来加载布局,其中有很多按钮,但是新需求是把按钮排成一行并且可从右向左滑动。

我的思路:是写一个xml布局文件,父布局是HorizontalScrollView里面有个水平方向的线性布局,然后在ViewGroup的构造方法里,通过layoutInflater获取该xml,并且调用addview方法将它加到父布局ViewGroup里,然后通过findById获取线性布局linearlayout,然后在获取这些按钮view的方法里调用linearlayout.addView(),将按钮都放到这个线性布局里,

结果:通过log显示这些按钮已成功加到这个线性布局里,但是在手机中无法显示,用hierarchy View工具查看发现linearlayout的宽为0,这些按钮的宽也变为0了,HorizontalScrollView的宽高正常。

疑问:所以这种多层嵌套引起的问题怎么解决?
...全文
420 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘兆贤 2016-09-26
  • 打赏
  • 举报
回复
先声明子布局,再添加父布局,这样最顶层的view才会重新计算自己的宽和高。另外一种办法是在现在的代码基础上,不做改变,调度父布局的requestLayou方法,让父布局重绘。
Saab_life 2016-09-24
  • 打赏
  • 举报
回复
用Addview(button,lp);这个方法
码界修真 2016-09-24
  • 打赏
  • 举报
回复
在线等。。。

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧