android.view.View#setFitsSystemWindows ( )源码实例Demo

下面列出了android.view.View#setFitsSystemWindows ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: CrazyDaily   文件: MainActivity.java
private void handleTranslucent() {
    Window window = getWindow();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        window.setNavigationBarColor(Color.WHITE);
    } else {
        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    }

    ViewGroup parent = (ViewGroup) findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码2 项目: ImmersionBar   文件: ImmersionBar.java
private static void setFitsSystemWindows(View view, boolean applySystemFits) {
    if (view == null) {
        return;
    }
    if (view instanceof ViewGroup) {
        ViewGroup viewGroup = (ViewGroup) view;
        if (viewGroup instanceof DrawerLayout) {
            setFitsSystemWindows(viewGroup.getChildAt(0), applySystemFits);
        } else {
            viewGroup.setFitsSystemWindows(applySystemFits);
            viewGroup.setClipToPadding(true);
        }
    } else {
        view.setFitsSystemWindows(applySystemFits);
    }
}
 
源代码3 项目: MNImageBrowser   文件: ImmersionBar.java
/**
 * 解决顶部与布局重叠问题
 * Sets fits system windows.
 *
 * @param activity the activity
 */
public static void setFitsSystemWindows(Activity activity) {
    if (activity == null) {
        return;
    }
    ViewGroup parent = activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            if (childView instanceof DrawerLayout) {
                continue;
            }
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码4 项目: CrazyDaily   文件: PhotoActivity.java
/**
 * 处理状态栏透明
 */
private void handleStatusbarTransparent() {
    final Window window = getWindow();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        window.setStatusBarColor(Color.TRANSPARENT);
    } else {
        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    }

    ViewGroup content = findViewById(android.R.id.content);
    for (int i = 0, count = content.getChildCount(); i < count; i++) {
        View child = content.getChildAt(i);
        if (child instanceof ViewGroup) {
            child.setFitsSystemWindows(true);
            ((ViewGroup) child).setClipToPadding(false);
        }
    }

    FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mPhotoDrawer.getLayoutParams();
    params.topMargin = -DeviceUtil.getStatusBarHeight(this);
    mPhotoDrawer.setLayoutParams(params);
}
 
源代码5 项目: Dashchan   文件: DialogStack.java
public static void bindDialogToExpandedScreen(Dialog dialog, View rootView, ExpandedScreen expandedScreen) {
	ViewGroup decorView = (ViewGroup) dialog.getWindow().getDecorView();
	decorView.getChildAt(0).setFitsSystemWindows(false);
	// Fix resizing dialogs when status bar in gallery becomes hidden with expanded screen enabled
	if (expandedScreen.isFullScreenLayoutEnabled()) {
		expandedScreen.addAdditionalView(rootView, false);
		decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
				View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
		dialog.setOnDismissListener(d -> expandedScreen.removeAdditionalView(rootView));
		expandedScreen.updatePaddings();
	} else {
		rootView.setFitsSystemWindows(true);
	}
}
 
源代码6 项目: VRPlayer   文件: StatusBarUtil.java
/**
 * 设置根布局参数
 */
private static void setRootView(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码7 项目: MNProgressHUD   文件: StatusBarUtil.java
/**
 * 设置根布局参数
 */
private static void setRootView(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码8 项目: tysq-android   文件: BitToolbarActivity.java
/**
 * 初始化toolbar
 */
private void initToolbar() {

    // 获取 DecorView
    ViewGroup decorView = (ViewGroup) getWindow().getDecorView();

    // 获取到 TitleView
    ViewGroup viewGroup = (ViewGroup) decorView.getChildAt(0);

    if (viewGroup instanceof LinearLayout) {
        View toolbar = LayoutInflater.from(this).inflate(BitManager.getInstance().getToolbarLayout(), null, false);

        viewGroup.addView(toolbar, 0);

        this.mToolbar = toolbar.findViewById(R.id.toolbar);

        setSupportActionBar(this.mToolbar);

        if (getSupportActionBar() != null) {
            //隐藏标题
            getSupportActionBar().setDisplayShowTitleEnabled(false);
            //显示回退按钮
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }

        ViewGroup contentFrameLayout = findViewById(Window.ID_ANDROID_CONTENT);
        View parentView = contentFrameLayout.getChildAt(0);
        if (parentView != null) {
            parentView.setFitsSystemWindows(true);
        }
    }

}
 
源代码9 项目: stynico   文件: StatusBarUtil.java
/**
 * 设置根布局参数
 */
private static void setRootView(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码10 项目: googlecalendar   文件: MainActivity.java
private static void setRootView(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(false);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码11 项目: imsdk-android   文件: StatusBarUtil.java
/**
 * 设置根布局参数
 */
private static void setRootView(Activity activity) {
    ViewGroup parent = activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码12 项目: StatusBarManager   文件: StatusBarUtil.java
/**
 * 设置根布局参数
 */
private static void setRootView(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码13 项目: Focus   文件: StatusBarUtil.java
/**
 * 设置根布局参数
 */
private static void setRootView(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码14 项目: AndroidUiKit   文件: ImmersiveModeUtil.java
/**
 * 设置根布局参数
 */
private static void setRootView(Activity activity) {
    ViewGroup parent = activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码15 项目: MvpRoute   文件: StatusBarUtils.java
/**
 * 设置让内容显示在状态栏之下
 *
 * @param activity
 */
public static void fitWindowAndClipPadding(@NonNull final Activity activity) {
	ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
	for (int i = 0, count = parent.getChildCount(); i < count; i++) {
		View childView = parent.getChildAt(i);
		if (childView instanceof ViewGroup) {
			childView.setFitsSystemWindows(true);
			((ViewGroup) childView).setClipToPadding(true);
		}
	}
}
 
源代码16 项目: iGap-Android   文件: StatusBarUtil.java
private static void setRootView(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码17 项目: MyBookshelf   文件: ImmersionBar.java
/**
 * 解决顶部与布局重叠问题
 * Sets fits system windows.
 *
 * @param activity the activity
 */
public static void setFitsSystemWindows(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码18 项目: AndroidPicker   文件: StatusBarUtil.java
/**
 * 设置根布局参数
 */
private static void setRootView(Activity activity) {
    ViewGroup parent = (ViewGroup) activity.findViewById(android.R.id.content);
    for (int i = 0, count = parent.getChildCount(); i < count; i++) {
        View childView = parent.getChildAt(i);
        if (childView instanceof ViewGroup) {
            childView.setFitsSystemWindows(true);
            ((ViewGroup) childView).setClipToPadding(true);
        }
    }
}
 
源代码19 项目: lbry-android   文件: MainActivity.java
public void unsetFitsSystemWindows(View view) {
    view.setFitsSystemWindows(false);
}
 
源代码20 项目: SwipeBack   文件: ModSDK21.java
@TargetApi(21)
public static void afterOnPostCreateSDK21(XC_MethodHook.MethodHookParam mhparams) throws Throwable {
	Class<?> internalStyleable = findClass("com.android.internal.R.styleable", null);
	int[] internalTheme = $(getStaticObjectField(internalStyleable, "Theme"));
	int internalColorPrimary = getStaticIntField(internalStyleable, "Theme_colorPrimaryDark");
	
	SwipeBackActivityHelper helper = $(getAdditionalInstanceField(mhparams.thisObject, "helper"));
	if (helper != null) {
		final Activity activity = $(mhparams.thisObject);

		String packageName = activity.getApplicationInfo().packageName;
		String className = activity.getClass().getName();
		
		mSettings.reload();
		if (!mSettings.getBoolean(packageName, className, Settings.LOLLIPOP_HACK, false))
			return;
		
		ViewGroup root = $(helper.getSwipeBackLayout().getChildAt(0));
		View content = root.getChildAt(0);
		final WindowInsetsColorDrawable bkg = new WindowInsetsColorDrawable(content.getBackground());
		content.setBackground(bkg);
		
		TypedArray a = activity.getTheme().obtainStyledAttributes(internalTheme);
		int primary = a.getColor(internalColorPrimary, 0);
		a.recycle();

		if (primary != 0) {
			bkg.setTopDrawable(new ColorDrawable(primary));
		} else {
			content.setSystemUiVisibility(content.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
			content.setFitsSystemWindows(true);
		}

		root.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
			@Override
			public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
				bkg.setTopInset(insets.getSystemWindowInsetTop());
				activity.getWindow().setStatusBarColor(0);
				return insets;
			}
		});
	}
}
 
 方法所在类
 同类方法