无法在片段中调用 android 个注释方法?
Not able to call android annotation methods in fragment?
我正在使用 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
:
中调用上述片段 class 的实例
SampleFragment.newInstance(getApplicationContext());
在代码中启用 debug
点后。代码流仅限于 newInstance
方法。调试器甚至不会去 onActivityCreated()
、onCreate()
和 afterViewsCreated()
。 @AfterViews
需要打电话。
为什么会这样?
您似乎只是在创建片段的一个实例。您似乎并没有真正调用 FragmentManager 来添加()/替换()这个新实例。
尝试:
Fragment fragment = SampleFragment.newInstance(getApplicationContext());
getFragmentManager.beginTransation()
.add(<ID RES>, fragment, <FRAGMENT TAG>)
.commit();
如果需要,ID RES 是您的资源 ID,FRAGMENT TAG 是您的片段标签。
有关使用 FragmentManager 的详细信息,请参阅此 post。
我正在使用 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
需要打电话。
为什么会这样?
您似乎只是在创建片段的一个实例。您似乎并没有真正调用 FragmentManager 来添加()/替换()这个新实例。
尝试:
Fragment fragment = SampleFragment.newInstance(getApplicationContext());
getFragmentManager.beginTransation()
.add(<ID RES>, fragment, <FRAGMENT TAG>)
.commit();
如果需要,ID RES 是您的资源 ID,FRAGMENT TAG 是您的片段标签。
有关使用 FragmentManager 的详细信息,请参阅此 post。