customView не соответствует родительской высоте и ширине
резюме:
Здравствуйте, я пытаюсь покрыть пользовательский раздутый вид над другим, для большинства устройств он работает нормально, а пользовательский вид покрывает весь вид, но по некоторым причинам в устройствах с размером экрана 5.7 это не так.
Вот пример, как это выглядит для Nexus 6p
эта проблема:
для устройств с размером экрана 5.7 пользовательский вид не соответствует родительской высоте и ширине.
код:
private void addCustomView(){
LayoutInflater layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
MyCustomView myCustomView = (MyCustomView) layoutInflater.inflate(R.layout.my_custom_view_layout, null);
mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();
mWindowManager.getDefaultDisplay().getMetrics(metrics);
mWindowManager.addView(myCustomView, getLayoutParams());
}
private WindowManager.LayoutParams getLayoutParams(){
if (mParentView == null) {
return null;
}
int[] array = new int[2];
mParentView.getLocationOnScreen(array);
//Build Params
int width = mParentView.getWidth();
int height = mParentView.getHeight();
WindowManager.LayoutParams mWindowParams = new WindowManager.LayoutParams();
mWindowParams.gravity = Gravity.TOP | Gravity.LEFT;
mWindowParams.x = array[0];
mWindowParams.y = array[1];
mWindowParams.height = height;
mWindowParams.width = width;
mWindowParams.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
mWindowParams.format = PixelFormat.TRANSLUCENT;
mWindowParams.windowAnimations = 0;
return mWindowParams;
}
MyCustomView XML:
<?xml version="1.0" encoding="utf-8"?>
<com.app.myapp.MyCustomView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:adjustViewBounds="true"/>
</com.app.myapp.MyCustomView>