package com.mytestapp;
|
|
import android.app.Activity;
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.os.Build;
|
import android.view.View;
|
import android.view.Window;
|
import android.view.WindowManager;
|
import android.view.inputmethod.InputMethodManager;
|
|
|
public class MyUtil {
|
|
public static void showDialog(Dialog dialog, Activity activity) {
|
if (activity != null) {
|
//Set the dialog to not focusable (makes navigation ignore us adding the window)
|
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
|
dialog.show();
|
//Set the dialog to immersive
|
dialog.getWindow().getDecorView().setSystemUiVisibility(activity.getWindow().getDecorView().getSystemUiVisibility());
|
//Clear the not focusable flag from the window
|
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
|
}
|
}
|
|
|
public static void showKeyboard(View view) {
|
InputMethodManager imm = (InputMethodManager) view.getContext()
|
.getSystemService(Context.INPUT_METHOD_SERVICE);
|
if (imm != null) {
|
view.requestFocus();
|
imm.showSoftInput(view, 0);
|
}
|
}
|
|
public static void hideKeyboard(View view){
|
InputMethodManager imm = (InputMethodManager) view.getContext()
|
.getSystemService(Context.INPUT_METHOD_SERVICE);
|
if (imm != null) {
|
imm.hideSoftInputFromWindow(view.getWindowToken(),0);
|
}
|
}
|
public static void toggleSoftInput(View view){
|
InputMethodManager imm = (InputMethodManager) view.getContext()
|
.getSystemService(Context.INPUT_METHOD_SERVICE);
|
if (imm != null) {
|
imm.toggleSoftInput(0,0);
|
}
|
}
|
|
/**
|
* 隐藏虚拟栏 ,显示的时候再隐藏掉
|
* @param window
|
*/
|
static public void hideNavigationBar(final Window window) {
|
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
|
window.getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
|
@Override
|
public void onSystemUiVisibilityChange(int visibility) {
|
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
//布局位于状态栏下方
|
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
|
//全屏
|
View.SYSTEM_UI_FLAG_FULLSCREEN |
|
//隐藏导航栏
|
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
|
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
|
if (Build.VERSION.SDK_INT >= 19) {
|
uiOptions |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
|
} else {
|
uiOptions |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
|
}
|
window.getDecorView().setSystemUiVisibility(uiOptions);
|
}
|
});
|
}
|
|
/**
|
* dialog 需要全屏的时候用,和clearFocusNotAle() 成对出现
|
* 在show 前调用 focusNotAle show后调用clearFocusNotAle
|
* @param window
|
*/
|
static public void focusNotAle(Window window) {
|
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
|
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
|
}
|
|
/**
|
* dialog 需要全屏的时候用,focusNotAle() 成对出现
|
* 在show 前调用 focusNotAle show后调用clearFocusNotAle
|
* @param window
|
*/
|
static public void clearFocusNotAle(Window window) {
|
window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
|
}
|
|
}
|