使用PickerView 弹出窗口与手机虚拟导航按键重叠问题

Android-PickerView

很实用的仿IOS选择器库
在使用过程中与国产部分手机虚拟导航按键有重叠问题
以时间选择器为例:

var timePicker= TimePickerBuilder(this, OnTimeSelectL ...(该处省略)
//适配方法 kotlin
var layoutParams:FrameLayout.LayoutParams= timePicker.dialogContainerLayout.layoutParams as FrameLayout.LayoutParams
layoutParams.bottomMargin=UIHelper.getNavigationBarHeight(activity)
timePicker.dialogContainerLayout.layoutParams=layoutParams

timePicker.show()

UIHelper.getNavigationBarHeight(activity) 是写的一个获得手机虚拟导航按键高度的方法
getNavigationBarHeight(...)如下:

/**
 * 获得NavigationBar的高度
 */
public static int getNavigationBarHeight(Activity activity) {
    int result = 0;
    Resources resources = activity.getResources();
    int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
    if (resourceId > 0 && checkHasNavigationBar(activity)) {
        result = resources.getDimensionPixelSize(resourceId);
    }
    return result;
}

/**
 * 判断是否有NavigationBar
 * @param activity
 * @return
 */
public static boolean checkHasNavigationBar(Activity activity) {
    WindowManager windowManager = activity.getWindowManager();
    Display d = windowManager.getDefaultDisplay();
    DisplayMetrics realDisplayMetrics = new DisplayMetrics();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        d.getRealMetrics(realDisplayMetrics);
    }
    int realHeight = realDisplayMetrics.heightPixels;
    int realWidth = realDisplayMetrics.widthPixels;
    DisplayMetrics displayMetrics = new DisplayMetrics();
    d.getMetrics(displayMetrics);
    int displayHeight = displayMetrics.heightPixels;
    int displayWidth = displayMetrics.widthPixels;
    return (realWidth - displayWidth) > 0 || (realHeight - displayHeight) > 0;
}

当然还有别的适配方法,这种方法来的比较直接,不喜勿喷哈

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android基础及相关机制 Android Context 上下文 你必须知道的一切 Android中子线程真的...
    楷桐阅读 2,027评论 1 30
  • 今天,上语文课的时候,我们学了很多字,比如字.语. 句.子。老师讲课的时候,我一定要认真听。下课的时候,我们做了一...
    林雨梦露阅读 119评论 0 4
  • 时间一秒一秒,嘀嗒嘀嗒。 看着手机上的时间,由五十五,到整点。 然后期待下一个半点的到来。 我在被窝里细数爱情。 ...
    不识3阅读 210评论 0 0
  • 今天是2018年2月26正月初十,我们今天早上一家人爬上青秀山,来到高处的观景台远眺整个南宁。 南宁的变化真大呀!...
    姜姜粒阅读 660评论 0 0
  • 背景 compression是基于Placement Targets的,是其中的一个配置项。 Placement ...
    chnmagnus阅读 5,291评论 0 4