java - 用户在片段中的不同视图
问题描述
我正在处理片段,我想检查我的用户是否已注册(在 Firebase 上)或者他是否离线(类似于您可能知道的 Spotify)
无论如何,我正在编写以下代码:
FirebaseAuth mAuth;
private DatabaseReference myRef;
private FirebaseAuth.AuthStateListener mAuthListener;
private FirebaseDatabase mFirebaseDatabase;
private String userID;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Initialize Authentication Object
mAuth = FirebaseAuth.getInstance();
if (mAuth.getCurrentUser() != null) {
View view = inflater.inflate(R.layout.fragment_unregistred, container, true);
return view;
} else {
View view = inflater.inflate(R.layout.fragment_stats, container, true);
return view;
}
正如您可能猜到的那样,这给了我一个错误:java.lang.IllegalStateException:指定的孩子已经有一个父母。您必须首先在孩子的父母上调用 removeView()。
对 removeView() 的研究没有让我明白这一点,所以我想这是错误的做法,对吗?
按要求提供完整的崩溃日志:
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:4937)
at android.view.ViewGroup.addView(ViewGroup.java:4768)
at android.view.ViewGroup.addView(ViewGroup.java:4708)
at android.view.ViewGroup.addView(ViewGroup.java:4681)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1434)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:703)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
解决方案
推荐阅读
- sql - 清理 Teradata 临时表中的错误删除/插入
- python - 针对 pandas 数据框运行 python 函数并将值返回到数据框中的问题
- python - 获取列表中的字符串等于列表中的数据框
- fluent - Vapor 4 从 EventLoopFuture 获取字符串
- javascript - javascript 从链接获取或检查#section2 元素
- javascript - 我想显示和隐藏一个元素(ActivityIndicator)
- node.js - mongodb异步操作因express nodejs而失败
- elasticsearch - 弹性搜索:创建或稍后添加与“_id”或“_source”平行的新字段(来自新手的问题)
- python - 如何在我的 react js 应用程序中集成自制的 TensorFlow 模型
- arrays - 一个在固定长度编码记录中的字段之间插入空格而没有分隔符的 sed 脚本?