다음은 Android 1.6에서 실행되므로 조각 용 호환 패키지를 사용하고 있습니다. 다음 TestFragment
에서 정적 중첩 클래스입니다 :Fragment.onCreateView에 null 컨테이너가 있습니다.
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;
}
}
}
main.xml에 파일 :
<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>
이상한 일이 onCreateView
에서 컨테이너 매개 변수가 null
것입니다.
이제 프래그먼트를 프로그래밍 방식으로 추가하면 (그냥 액티비티의 onCreate
메서드 변경) 컨테이너가 더 이상 null이 아닙니다. 왜?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fragment frag = new TestFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit();
}
나는 똑같은 문제가있다. 컨테이너가 조각이 포함 된 활동 레이아웃의 일부라고 생각했습니다. 어떻게 그게 null이 될 수 있습니까? –