首页 > 解决方案 > 如果 Fragment 中没有 @Inject 构造函数,则无法提供 LinearLayoutManager

问题描述

我正在使用 Dagger 2,在创建新片段时,我似乎遇到了这个错误。我一直在尝试各种事情,但我根本无法修复此消息。

没有@Inject 构造函数就无法提供android.support.v7.widget.LinearLayoutManager

看起来应该是直截了当的,因为我在 Github 上引用 Mindorks MVP 项目

这是我的片段代码,如果需要或者这很明显,请告诉我还可以发布什么。

public class HomePageFragment extends BaseFragment implements
    HomeMvpView {

@Inject
HomeMvpPresenter<HomeMvpView> mPresenter;

@BindView(R.id.featuredRecyclerView)
RecyclerView featuredRecyclerView;

@Inject
LinearLayoutManager mLayoutManager;

@Inject
RecyclerView.LayoutManager mLayoutManager2;

@Inject
FeaturedAdapter featuredAdapter;

public static HomePageFragment newInstance() {
    Bundle args = new Bundle();
    HomePageFragment fragment = new HomePageFragment();
    fragment.setArguments(args);
    return fragment;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_home_page, container, false);

    ActivityComponent component = getActivityComponent();

    if (component != null) {
        component.inject(this);
        setUnBinder(ButterKnife.bind(this, rootView));

        mPresenter.onAttach(this);

    }
    return rootView;
}


@Override
protected void setUp(View view) {
    featuredRecyclerView = view.findViewById(R.id.featuredRecyclerView);

    //setup Adapter
    mLayoutManager2 = new LinearLayoutManager(getActivity());
    //mLayoutManager2.setOrientation(LinearLayoutManager.VERTICAL);
    featuredRecyclerView.setLayoutManager(mLayoutManager);
    featuredRecyclerView.setItemAnimator(new DefaultItemAnimator());
    featuredRecyclerView.setAdapter(featuredAdapter);
}
}

标签: androidandroid-fragmentsdependency-injectiondagger-2mvp

解决方案


推荐阅读