android:片段在屏幕上崩溃方向

时间:2017-12-20 17:05:43

标签: android

我制作了两个XML文件,一个用于纵向模式,另一个用于横向

当我启动应用程序时,它会正常运行,并在第二次翻转屏幕后崩溃并发出此错误:java.lang.IllegalStateException: Fragment has not been attached yet

尽管横向xml文件包含静态片段,但portriat却没有任何内容(为了在进一步的步骤中添加片段)。这是我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<fragment
    android:name="com.example.alihaidar.fragmentlab.fragList"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="match_parent"
    android:id="@+id/frag_list"
    />
<fragment
    android:name="com.example.alihaidar.fragmentlab.fragContent"
    android:layout_width="0dp"
    android:layout_weight="2"
    android:layout_height="match_parent"
    android:id="@+id/frag_content"
    />
 </LinearLayout>

这是mainActivity它什么都不包含:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
}

1 个答案:

答案 0 :(得分:0)

您需要进行验证以使用isAdded()方法检查片段是否附加到其父级:

if (!isAdded()){
    return;  //Not attached
}else{
   //Attached!
} 
  

isAdded()如果片段当前已添加到其中,则返回true   活性。

另一个选项,在您的活动中定义属性:

<activity 
            android:configChanges="orientation|keyboardHidden|screenSize">

以避免在旋转设备时破坏父活动。