@NonNull
public static FrameLayout getRootFrame(@NonNull Activity activity) {
View re = activity.findViewById(android.R.id.content);
if (re != null && re instanceof FrameLayout) {
return (FrameLayout) re;
}
ViewGroup viewGroup = (ViewGroup) activity.getWindow().getDecorView();
re = viewGroup.getChildAt(viewGroup.getChildCount() - 1);
if (re != null && re instanceof FrameLayout) {
return (FrameLayout) re;
} else {
re = new FrameLayout(activity);
activity.getActionBar().getHeight();
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT
, ViewGroup.LayoutParams.MATCH_PARENT);
viewGroup.addView(re, lp);
return (FrameLayout) re;
}
}
获得activity的rootview
最新推荐文章于 2023-02-15 15:50:36 发布
本文介绍了一种在Android应用中获取当前Activity根FrameLayout的方法。该方法首先尝试通过直接查找content视图来获取FrameLayout,如果未能成功,则通过Window DecorView获取最后一个子视图,并检查其类型。若仍未能找到合适的FrameLayout,则会创建一个新的FrameLayout并添加到DecorView中。
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印


246

被折叠的 条评论
为什么被折叠?



