Das folgende läuft auf einem Android 1.6, also verwende ich das Kompatibilitätspaket für Fragmente. Im folgenden TestFragment
ist eine statische verschachtelte Klasse:Fragment.onCreateView hat null container
public class FragmentTestActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public static class TestFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView result = new TextView(getActivity());
result.setText("Hello TestFragment");
return result;
}
}
}
Die main.xml Datei:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<fragment class="com.test.FragmentTestActivity$TestFragment"
android:id="@+id/test"
android:layout_width="fill_parent" android:layout_height="fill_parent" />
</FrameLayout>
Das Merkwürdige ist, dass der Behälter Parameter in onCreateView
null
ist.
Nun, wenn ich das Fragment programmatisch wie folgt hinzufügen (ändern Sie einfach die onCreate
Methode der Aktivität) der Container ist nicht mehr null. Warum?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fragment frag = new TestFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit();
}
Ich habe ein ähnliches Problem. Ich dachte, dass der Container Teil des Aktivitätslayouts ist, in dem das Fragment eingebettet ist. Wie kann das null sein? –