Android虚拟键适配,之前我一直没有在乎过,因为一般我都是自动适应布局,但是最近用到一个界面效果,自己写了一个PopupWindow,造成了类似的效果
未适配图
  • 可以发现,虚拟键位,挡住了取消按钮的触控区域,网上百度一下,大多是在布局内家加上(android:fitsSystemWindows="true") ,BUT我的控件不是布局,里面写好的啊!我采用的自定义布局,SO 问题就是如何让取消按钮的触控区域显示出来。

采用隐藏虚拟键位的方法。
百度一下(原谅我红杏被封了,我就沦落到百度了,鄙视我吧),以下是结果:

``` 

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_SHOW_FULLSCREEN);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

what the fuck   ,上面是什么鬼,试了一下,开始是隐藏的,但是点击布局,又显示出来了,还有建议屏蔽View点击事件,抛弃+  获取虚拟键高度,然后定位显示布局的位置      ``` public staticPointgetNavigationBarSize(Context context) {Point appUsableSize =getAppUsableScreenSize(context);Point realScreenSize =getRealScreenSize(context);// navigation bar on the rightif(appUsableSize.x< realScreenSize.x) {return newPoint(realScreenSize.x- appUsableSize.x,appUsableSize.y);}// navigation bar at the bottomif(appUsableSize.y< realScreenSize.y) {return newPoint(appUsableSize.x,realScreenSize.y- appUsableSize.y);}// navigation bar is not presentreturn newPoint();}public staticPointgetAppUsableScreenSize(Context context) {WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display display = windowManager.getDefaultDisplay();Point size =newPoint();display.getSize(size);returnsize;}public staticPointgetRealScreenSize(Context context) {WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display display = windowManager.getDefaultDisplay();Point size =newPoint();if(Build.VERSION.SDK_INT>=17) {display.getRealSize(size);}else if(Build.VERSION.SDK_INT>=14) {try{size.x= (Integer) Display.class.getMethod("getRawWidth").invoke(display);size.y= (Integer) Display.class.getMethod("getRawHeight").invoke(display);}catch(IllegalAccessException e) {}catch(InvocationTargetException e) {}catch(NoSuchMethodException e) {}}returnsize;}  ``` * 测试:虚拟键位正常显示在布局下面,还有LG的手机真的很丑。。。(当然,APP丑这是肯定的)![适配后图](http://upload-images.jianshu.io/upload_images/555358-ecb28a26256bee7e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)链接地址:[stackOverFlow](http://stackoverflow.com/questions/20264268/how-to-get-height-and-width-of-navigation-bar-programmatically/29609679#29609679)顺便说一下:国内技术都是一篇文章处处转,标个原地址能死啊!(鄙视。。。。。)

更多相关文章

  1. Android性能优化篇:从布局角度进行优化
  2. Android(安卓)RelativeLayout 布局
  3. Android高手进阶教程(三)之 ----Android(安卓)中自定义View的应
  4. Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效
  5. Android相对布局(RelativeLayout)
  6. Android简单逐帧动画Frame的实现
  7. 一个关于android界面布局的知识
  8. 我的第一个应用程序:如何逐步创建第一个Android应用程序
  9. 动手学Android之八——搞定列表

随机推荐

  1. 【Android Developers Training】 66. 添
  2. Android系列教程之九:GridView组件的使用
  3. Android学习笔记九:基本视图组件:Spinner
  4. [翻译]用Dart塑造Android未来
  5. AndroidICS4.0---->LockScreen锁屏流程【
  6. Android短信功能实现源码
  7. Android 3D游戏开发技术详解与典型案例
  8. 关于Android Studio中第三方jar包的Javad
  9. 在eclipse中导入android项目
  10. Android5.0水波纹效果适配4.X