我有一個應用程序,它是唯一的基於片段的,實際上(我剛創建的基本內容)我只有一個片段,宣告直接進入佈局:的Android片段:在onCreateView容器變量爲空
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:name="com.italialinux.fragments.MainFragment"
android:id="@+id/main_screen_fragment"
android:layout_width="0dp"
android:layout_height="match_parent"
/>
</FrameLayout>
而這種佈局被加載主要活動的內部,用下面的代碼:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_screen);
}
}
而且MainFragment類如下:
public class MainFragment extends Fragment {
final static private long ONE_SECOND = 1000;
final static private long TWENTY_SECONDS = ONE_SECOND * 20;
private final static String TAG = "MainFragment";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
View view = inflater.inflate(R.layout.new_reminder, container, false);
return view;
}
而new_reminder佈局只包含兩個EditText和幾個標籤。
的問題是,我不能膨脹的佈局中,由於在onCreateView傳遞的容器變量爲空。
我看到了這麼多的問題,如下所示: Android Fragment is given a null container in onCreateView()
和所有說,我需要使用一個交易,但我不明白的是: 如果我有一個片段是不變,在一個佈局中,並且不需要改變(就像在這種情況下,就像在很多例子中你有一個包含項目列表的ListFragment一樣),我怎麼能膨脹當前視圖內的佈局?
隨着ListFragment它的工作原理,但如果我不希望使用它呢?
的onCreateView方法正確調用。
可能是不相關的,但爲什麼你叫''裏面onCreateView' super.onSaveInstanceState'?這個答案提到,該容器實際上可以爲空:http://stackoverflow.com/a/13586685/1561033 – Jujuba
onSaveInstanceState被添加試圖解決這個問題,如果我刪除該行,我仍然有問題。問題是佈局R.layout.new_reminder沒有在片段中膨脹。 – Ivan
當你說它沒有被誇大時,你會得到什麼錯誤信息? – Jujuba