당신은 같은 내부 클래스의 조각이있는 경우 :
public class SomethingFragment extends Fragment {
public static final class TypeFragment extends BaseFragment
{
public static Fragment newInstance()
{
return new TypeFragment();
}
private View mRootView;
private ListView mListView;
/**
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater,
* android.view.ViewGroup, android.os.Bundle)
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
mRootView = inflater.inflate(R.layout.fragment_category_list, container, false);
mListView = (ListView) mRootView.findViewById(R.id.fragment_listview);
return mRootView;
}
}
}
는 FragmentActivity이 조각을 재개 시도는 그것을 처리 할 구상 클래스에서 호출하지 않는 경우 귀하의 한정자가 공공을 있는지 확인 추상 FragmentActivity에서, 그리고 내부 클래스 Fragment가 private 인 경우 Activity에 onSaveState, onRestoreState, initialise 등의 참조가 없습니다.
private
~ public
고정되어 있습니다!
업데이트 :
이 https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v4/java/android/support/v4/app/Fragment.java
(조각이 완전히 파괴되었다) 저장된 상태에서 Fragment
을 복원하려고 할 때 instantiate
방법은 newInstance()
호출에서보세요.
메서드는 클래스에 공개적으로 액세스 할 수 있어야하므로 내부 클래스로 정의 할 경우 적절한 경우 public
및 static
이어야합니다.
희망 사항은 향후의 몇 가지 질문을 해결합니다.
조각이 컨테이너에 어떻게로드되고 있습니까? 레이아웃 XML 또는 코드를 통해? 나는 전 (前者)을 시도하지 않았지만 후자를 가진 정적 내부 조각 클래스에 아무런 문제가 없었다. BTW 나는 compat lib의 v1을 사용하고 있습니다. – PJL
나는 내부 클래스의 이름과 함께 분명히 태그를 포함하고있는 조각을 가진 레이아웃을 가지고있다. –
Necronet
API 데모에서 FragmentLayoutSupport 예제를 살펴 보았습니까? **
PJL