...
|
...
|
@@ -61,6 +61,7 @@ import com.yinhebairong.clasmanage.utils.SharedPreferenceUtil; |
|
|
import com.yinhebairong.clasmanage.widget.CircleImageView;
|
|
|
import com.yinhebairong.clasmanage.widget.DatePickerView;
|
|
|
|
|
|
import java.lang.reflect.Method;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Calendar;
|
|
|
import java.util.List;
|
...
|
...
|
@@ -512,6 +513,29 @@ public class StuEvaFragment_per extends BaseFragment { |
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
//获取是否存在NavigationBar
|
|
|
public boolean checkDeviceHasNavigationBar(Context context) {
|
|
|
boolean hasNavigationBar = false;
|
|
|
Resources rs = context.getResources();
|
|
|
int id = rs.getIdentifier("config_showNavigationBar", "bool", "android");
|
|
|
if (id > 0) {
|
|
|
hasNavigationBar = rs.getBoolean(id);
|
|
|
}
|
|
|
try {
|
|
|
Class systemPropertiesClass = Class.forName("android.os.SystemProperties");
|
|
|
Method m = systemPropertiesClass.getMethod("get", String.class);
|
|
|
String navBarOverride = (String) m.invoke(systemPropertiesClass, "qemu.hw.mainkeys");
|
|
|
if ("1".equals(navBarOverride)) {
|
|
|
//不存在虚拟按键
|
|
|
hasNavigationBar = false;
|
|
|
} else if ("0".equals(navBarOverride)) {
|
|
|
//存在虚拟按键
|
|
|
hasNavigationBar = true;
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
}
|
|
|
return hasNavigationBar;
|
|
|
}
|
|
|
// 表现图标弹窗
|
|
|
private void Bxpop() {
|
|
|
View view = LayoutInflater.from(getActivity()).inflate(R.layout.pop_xiangmu, null);
|
...
|
...
|
@@ -522,22 +546,25 @@ public class StuEvaFragment_per extends BaseFragment { |
|
|
PopupWindow pop = new PopupWindow(view, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
|
|
|
// Limit popwindow size
|
|
|
// Limit popwindow size
|
|
|
|
|
|
if (Build.VERSION.SDK_INT >= 24) {
|
|
|
if (Build.MANUFACTURER.equals("Xiaomi")){
|
|
|
DisplayMetrics metrics = new DisplayMetrics();
|
|
|
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
|
|
int height = metrics.heightPixels;
|
|
|
height += getNavigationBarHeight( getActivity());
|
|
|
Rect visibleFrame = new Rect();
|
|
|
view.getGlobalVisibleRect(visibleFrame);
|
|
|
int popheight =height - visibleFrame.bottom - linear_pop.getBottom() - getNavigationBarHeight( getActivity());
|
|
|
pop.setHeight(popheight);
|
|
|
}else {
|
|
|
Rect visibleFrame = new Rect();
|
|
|
view.getGlobalVisibleRect(visibleFrame);
|
|
|
int height = view.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom - linear_pop.getBottom() - getNavigationBarHeight( getActivity());
|
|
|
pop.setHeight(height);
|
|
|
M.log("getDisplayMetrics", view.getResources().getDisplayMetrics().heightPixels + "---" + visibleFrame.bottom + "---" + linear_pop.getBottom()+"---"+getNavigationBarHeight( getActivity()));
|
|
|
if (checkDeviceHasNavigationBar(getActivity())){
|
|
|
if (Build.MANUFACTURER.equals("Xiaomi")){
|
|
|
DisplayMetrics metrics = new DisplayMetrics();
|
|
|
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
|
|
int height = metrics.heightPixels;
|
|
|
height += getNavigationBarHeight( getActivity());
|
|
|
Rect visibleFrame = new Rect();
|
|
|
view.getGlobalVisibleRect(visibleFrame);
|
|
|
int popheight =height - visibleFrame.bottom - linear_pop.getBottom() ;
|
|
|
pop.setHeight(popheight);
|
|
|
}else {
|
|
|
Rect visibleFrame = new Rect();
|
|
|
view.getGlobalVisibleRect(visibleFrame);
|
|
|
int height = view.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom - linear_pop.getBottom();
|
|
|
pop.setHeight(height);
|
|
|
M.log("getDisplayMetrics", view.getResources().getDisplayMetrics().heightPixels + "---" + visibleFrame.bottom + "---" + linear_pop.getBottom()+"---"+getNavigationBarHeight( getActivity()));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
pop.setOutsideTouchable(true);
|
...
|
...
|
|