无法在片段中调用 android 个注释方法?

Not able to call android annotation methods in fragment?

我正在使用 Android annotationFragment 充气:

@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