9.0版本 6.0版本
效果如上所示,如果隐藏显示View用View.Gone/Visable的方式,左边的是6.0版本测试机效果,右边是9.0测试机的效果,能明显的看到当略加改变界面的透明度的基础上去隐显View组建,6.0的在隐藏后退居上层界面以下,在屏幕右下角还是能看见的,但是高版本的测试机隐藏后便不会在屏幕可见。
低版本隐藏效果如果想跟动图高版本的一样,解决方案是:在6.0的系统版本中对要隐藏的控件舍弃Gone/Visiable的处理,换用setTranslationY()的方式,隐藏的时候根据获取到的view组件高度,把控件通过Y轴移动到屏幕下方,由此达到隐藏的效果;显示的时候反向操作即可。代码如下:
//show
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
rv_all_log.setTranslationY(0);
} else {
rv_all_log.setVisibility(View.VISIBLE);
}
//hide
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
rv_all_log.setTranslationY(rv_all_log.getHeight());
} else {
rv_all_log.setVisibility(View.GONE);
}