3
我希望能够显示任何活动上方的任何片段覆盖。结果应该是这个样子:显示片段覆盖任何活动上面
实现这一目标将是将是无形的活动中额外的FrameLayout最简单的方法。当应该显示叠加层时,可以将其放置在FrameLayout中,然后将其设置为可见。
这工作正常,但当然只在准备这样做的活动中。此外,这不会覆盖操作栏。我正在寻找更通用的方法。事情是这样的:
// In Activity
public void showFragmentOverlay() {
SomeFragment someFragment = new SomeFragment();
FragmentOverlay overlay = new FragmentOverlay(this, someFragment);
overlay.show();
}
// Overlay class
public class FragmentOverlay {
private Activity activity;
private Fragment fragment;
public FragmentOverlay(Activity activity, Fragment fragment) {
this.activity = activity;
this.fragment = fragment;
}
private FrameLayout frameLayout;
public void show() {
// Find root view/layout somehow
// Create FrameLayout programmatically and place it in the root layout
// Add Fragment to FrameLayout
}
public void close() {
// Remove FrameLayout from root layout
}
}
我使用iOS上非常类似的解决方案,只需直接添加视图到窗口来覆盖所有其他意见。但是我无法在Android上运行。问题是,我没有发现如何找到/得到根布局。找到根视图没有问题(activity.getWindow()。getDecorView()。getRootView()),但我需要一个ViewGroup /布局能够添加一个新的孩子。
这怎么能在Android上完成?
你尝试使用'DialogFragment'? – Apoorv
将叠加层放入具有透明背景的新活动中。然后开始这个活动。瞧。 – ElDuderino