tv_btn_web.measure(0, 0);//计算所需的真实宽高
LayoutParams params=vp_btn_menu.getLayoutParams();
params.height=tv_btn_web.getMeasuredHeight();//得到计算后的真实高度
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就嵌套一个就行了。

android ViewPaper高度自适应的更多相关文章

  1. android设置GridView高度自适应,实现全屏铺满效果

    使GridView每个item的高度自适应拉伸,达到整个GridView刚好铺满全屏的效果. public static void setGridViewMatchParent(GridView gr ...

  2. Unity NGUI根据高度自适应屏幕分辨率

    Unity版本:4.5.1 NGUI版本:3.6.5 本文内容纯粹转载,转载保留参考链接和作者 参考链接:http://blog.csdn.net/asd237241291/article/detai ...

  3. 【聊技术】在Android中实现自适应文本大小显示

    本周的聊技术话题和大家说说如何在Android中实现自适应文本大小显示. 想象一下,在布局中,通常显示文本的区域大小是固定的,但是文本长度并不总是固定的.比如列表中的文章标题.界面下方的按钮文本等等. ...

  4. iOS开发之多种Cell高度自适应实现方案的UI流畅度分析

    本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景.当然Cell高度的自适应网上的解决方案是铺天盖地呢,今天我们的 ...

  5. iframe高度自适应(同域)

    今天解决了iframe高度自适应的问题,不过这只是同域下的页面嵌入,以下是代码: function SetCwinHeight(){ var iframeid = document.getElemen ...

  6. div仿textarea使高度自适应

    今天真的有些无语,在百度上找了很多关于textarea和input高度自适应的代码,并且考虑到了要判断textarea的滚动条,从而动态改变它的高度,直到我搜索了这个让我目瞪狗呆的办法…… <d ...

  7. 【代码笔记】iOS-UILable高度自适应(sizeWithFont)

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  8. [转载]跨域iframe高度自适应

    场景: 经常会有这样的需求,跟外部合作伙伴合作,要嵌入别人的页面,这时候就需要高度自适应了,在这种跨域的情况下如何解决呢? 解决: 在iframe(合作伙伴的页面,称为P页面)中创建一个隐藏的ifra ...

  9. css经典布局——头尾固定高度中间高度自适应布局

    转载:穆乙 http://www.cnblogs.com/pigtail/ 相信做过后台管理界面的同学,都非常清楚这个布局.最直观的方式是框架这个我不想多写费话,因为我们的重心不在这里.如果有不了解的 ...

随机推荐

  1. iOS开发优化的25个方案

    写在前面 本文来自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程序员.这是他的个人网站:http://www.marcelofabri.com/ ...

  2. Android开发教程 录音和播放

    首先要了解andriod开发中andriod多媒体框架包含了什么,它包含了获取和编码多种音频格式的支持,因此你几耍轻松把音频合并到你的应用中,若设备支持,使用MediaRecorder APIs便可以 ...

  3. json传参应用

    json传参应用 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...

  4. jQuery实现动态添加和删除一个div

    本文主要给大家简单介绍一下如何动态的在一个元素添加和删除div,希望能够得到举一反三之效. 代码实例如下: <!DOCTYPE html> <html> <head> ...

  5. jQuery通过jquery.form.js插件使用AJAX提交Form表单

    我简单使用了一下,jQuery Form插件有一下优点:  1.支持提交前验证. 2.支持提交后回调. 3.采用AJAX方式,有很好的用户体验 4.提交方式是灵活.只要指定要提交的form ID即可. ...

  6. Android Virtual Devices代理上网

    本机电脑是使用代理上网,然后要在avd中要连接互联网,设置步骤如下: Click on Menu Click on Settings Click on Wireless & Networks ...

  7. Pass Dynamic Value to a Grid Label

     A grid label is the blue (normally) colored grid header that you see on PeopleSoft pages. The grid ...

  8. 开始安装 ASP.NET (4.0.30319.18408)。 出现了错误: 0x8007b799 必须具有此计算机的管理员权限才能运行此工具

    在Visual Studio命令提示符安装ASP.NET .出现了错误: 0x8007b799 必须具有此计算机的管理员权限才能运行此工具:如下图: 解决方案如下: 1.打开“C:\Windows\S ...

  9. DataGridView控件判断滚动条是否滚动到当前已加载的数据行底部

    private void dgvLoad_Scroll(object sender, ScrollEventArgs e) { if (e.ScrollOrientation == ScrollOri ...

  10. Redis监控方案

    Redis 监控最直接的方法当然就是使用系统提供的 info 命令来做了,你只需要执行下面一条命令,就能获得 Redis 系统的状态报告. redis-cli info 内存使用 如果 Redis 使 ...