android ViewPaper高度自适应
1 tv_btn_web.measure(0, 0);//计算所需的真实宽高 2 LayoutParams params=vp_btn_menu.getLayoutParams(); 3 params.height=tv_btn_web.getMeasuredHeight();//得到计算后的真实高度 4 vp_btn_menu.setLayoutParams(params);
有时我真的真正的android高手不是对android的理论原理理解的多么深刻(感觉android还算好理解,好用),如果是android自带的东西,8天的视频几乎每个稍微有点java基础的都可以轻松入门。但是我却android非常非常难,8天入门的是理论,然而一旦上升到“实践高度”,且不说不同机型的适配,就连android自身的bug,坑都需要一步步的却踩,去填。。。感觉自己实践android的时候大部分的时间都在百度、google bug的 hack方法。就好像html、css都不难,但是如果考虑到兼容所有浏览器,那就呵呵呵了。。
个人觉得这种平台独有bug简直就是在浪费程序员的生命,因为并不能对整体技术提高。。。要不是android这么火,估计这些“坑”的经验是没有任何价值的,而且解决也更加困难。。
比如viewpaper设置wrap_content失效,初次一看真心怀疑是否能有解决方案,然后百度一大片的解决方案。。就知道不是自己一个人踩了这个坑了。,。
好了,吐槽了这么多,我想说的是根据百度结果,并没有完美的解决方案,目测暂时唯一的解决方法就是指定宽高,只不过在这里可以利用以前小技巧。想起当年收藏的解决listview scrollview嵌套问题时找到的计算高度的类里面用到了onmeasure方法,此方法只有linearlayout或者linearlayout的子类(比如tablelayout)调用才有效,因为只有linearlayout覆写了这个方法。。特别需要注意的是relativelayout调用是没有用的。
所以说了这么多,其实只要viewpaper的里面的view用linearlayout或者tablelayout就行了,如果实在要用Relativelayout就嵌套一个就行了。