一半在外的按钮布局效果实现

刚开始实习的日常果然就是画画界面布局啊~哈哈,不过就算是写布局文件也没有想象的那么简单。首先学到的就是大量使用LinearLayout+weight,基本全是权重,这样在屏幕适配的时候才好适配,虽然以前学习的时候也知道要多用权重方便适配,但是自己写的时候也不太注意,现在看来基本每个界面能用权重的全是用权重,这个是学习到了。然后遇到了一个这样的布局。如下如图:


上面是一个地图的MapView下面是一个ViewPager,中间有一个ImageButton,开始的时候也是很顺利的线性布局安权重分配MapView和ViewPager,但是在加这个按钮的时候犯了难,LinearLayout直接加不行,中间就会有一段空白,换成RelativeLayout也不行,不按权重换个分辨率不一样的手机这个imagebutton就有个能不在这两者中间了。百度啊百度,找了好多也没找到类似的例子,找到个LinearLayoutandroid:clipChildren属性试了试也不行,也稍微有些区别。最后想到FrameLayout,在帧布局中放一个线性布局,在线性布局中按权重分别放置MapView和ViewPager。然后再在代码中动态创建一个ImageButton然后放到帧布局里去。获取屏幕高度按比例计算ImageButton放置的位置,设置即可。但是这样也太麻烦,都用了FrameLayout了,为什么不再放一层,于是在FrameLayout里放一层LinearLayout按权重设置好地图的view和viewpager。利用FrameLayout是可以叠加放置的,在上方再放一层LinearLayout,然后在这一层里用两个透明的LinearLayout按权重填充布局将ImageButton放在适当权重的地方就可以了。

代码就不贴了,之前一直想着怎么把ImageButton塞进中间去,结果怎么也塞不进去,换成纵向思维后,利用FrameLayout网上叠加,一下子就出来了。有时候换个思考方式,难题其实很简单!


你可能感兴趣的:(一半在外的按钮布局效果实现)