我使用Android annotation
来夸大Fragment
:
@EFragment(R.layout.fragment_sample)
public class SampleFragment extends Fragment {
public static SampleFragment newInstance(Context context) {
mContext = context;
SampleFragment samplefragment = new SampleFragment_();
return samplefragment;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
}
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
}
@AfterViews
public void afterViewsCreated(){
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext);
}}
我从Activity
:
SampleFragment.newInstance(getApplicationContext());
在代码中启用debug
点后。代码流仅限于newInstance
方法。调试器甚至不会转到onActivityCreated()
,onCreate()
和afterViewsCreated()
。 @AfterViews
需要被调用。
为什么会这样?
答案 0 :(得分:1)
您似乎正在做的就是创建片段的实例。您似乎并没有真正调用FragmentManager来添加()/ replace()这个新实例。
尝试:
Fragment fragment = SampleFragment.newInstance(getApplicationContext());
getFragmentManager.beginTransation()
.add(<ID RES>, fragment, <FRAGMENT TAG>)
.commit();
其中ID RES是您的资源ID,如果需要,FRAGMENT TAG是您的片段标记。
有关使用FragmentManager的详细信息,请参阅此post。