我正在尝试构建一个浮动操作按钮,该按钮将在正在运行的每个活动中显示。如何完成布局以显示在每个活动中。
我已经看到了一些使用WindowManager的方法,但是我不喜欢坐在应用程序顶部并且需要覆盖方面的方法。使用ZIndex或在过渡新活动等时从服务添加到视图中有更好的方法吗?
谢谢。
最佳答案
您可以使用静态方法创建一个单独的类,该类将创建一个FabButton并将其附加到您的根视图。
public class FabButton {
public static void init(AppCompatActivity activity){
View root = root.getWindow().getDecorView();
FloatingActionButton fab = new FloatingActionButton(getContext());
fab.setId(R.id.fab);
fab.setLayoutParams(new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
));
root.addView(fab);
}
}
您可以在任何要添加的地方使用它。在活动的
onCreate
中,调用:FabButton.init(this);
编辑:我根据您的要求找到了更好的答案
在您的应用程序类的
onCreate
中,添加registerActivityLifecycleCallbacks(this);
然后实现
ActivityLifecycleCallbacks
的方法。现在在
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
FabButton.init(activity);
}