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

时间:2016-10-19 21:38:17

标签: java android android-studio android-fragments android-annotations

我使用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需要被调用。

为什么会这样?

1 个答案:

答案 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