PopupWindow 适配 Android 7.0 、7.1

「问题描述」:

正常显示:
PopupWindow 适配 Android 7.0 、7.1_第1张图片

PopupWindow 适配 Android 7.0 、7.1_第2张图片

显示错位:
PopupWindow 适配 Android 7.0 、7.1_第3张图片

「解决方案」:

package com.chitty.views;

import android.graphics.Rect;
import android.os.Build;
import android.view.View;
import android.widget.PopupWindow;

/**
 * Created by chitty on 2017/7/26.
 * 适配 Android 7.0  7.1
 */

public class FixedPopupWindow extends PopupWindow {

    public FixedPopupWindow(View contentView, int width, int height) {
        super(contentView, width, height, false);
    }

    @Override
    public void showAsDropDown(View anchor) {
        if (Build.VERSION.SDK_INT >= 24) {
            Rect rect = new Rect();
            anchor.getGlobalVisibleRect(rect);
            int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
            setHeight(h);
        }
        super.showAsDropDown(anchor);
    }
}

P.S. :
Android 7.0 的 Build.VERSION.SDK_INT = 24,
Android 7.1 的 Build.VERSION.SDK_INT = 25.

你可能感兴趣的:(Android,Error,集锦,适配)