今天完成了一个需求,原先用了很多复杂的手段,效果都不太好,没想到最终用了非常简单的方法解决了。
主要是布局 看下边的截图
说说这个布局怎么实现的吧 如右边 最外城是个Linearlayout 在里边我写了一个linearlayou选择沾满整个屏幕, 下边的 ll_bottom 则是 固定高300DP
他显示的样子就如左边的红圈部分。 这样就初步完成了我想要的布局 适配各种屏幕的手机就算小屏幕ll_bottom也不会漏出来,
之后就是用位移动画了
点击红圈的小箭头 2 跟 3就往上移动
代码如下:
//这个距离是为了优化不同机型 的长宽 ll_content是动画范围的整个高度 ll_data是位移空间的高度 其中的差值正好让 空间移动到上边能填充满上部 objectAnimator.ofFloat(ll_data, "TranslationY", - liner.getHeight()) .setDuration(600).start(); animator2.ofFloat(ll_bottom ,"TranslationY",-ll_data.getHeight()).setDuration(600).start();
"TranslationY"这个参数 就是指Y轴 就是上下移动 往上移动的值 是负数