Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在ViewPager中使用RecyclerView_Android - Fatal编程技术网

Android 在ViewPager中使用RecyclerView

Android 在ViewPager中使用RecyclerView,android,Android,我实现了一个包含3个片段a、B和C的ViewPager。因此,我可以使用幻灯片效果切换片段。但现在我想在每个片段中实现一个RecyclerView 我有一个错误: java.lang.NullPointerException at android.support.v7.widget.RecyclerView.computeHorizontalScrollRange(RecyclerView.java:1153) at android.view.Vi

我实现了一个包含3个片段a、B和C的ViewPager。因此,我可以使用幻灯片效果切换片段。但现在我想在每个片段中实现一个RecyclerView

我有一个错误:

java.lang.NullPointerException
            at android.support.v7.widget.RecyclerView.computeHorizontalScrollRange(RecyclerView.java:1153)
            at android.view.View.onDrawScrollBars(View.java:11972)
            at android.view.View.draw(View.java:14471)
            at android.support.v7.widget.RecyclerView.draw(RecyclerView.java:2440)
            at android.view.View.getDisplayList(View.java:13362)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.View.draw(View.java:14182)
            at android.view.ViewGroup.drawChild(ViewGroup.java:3103)
            at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2940)
            at android.view.View.getDisplayList(View.java:13357)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3077)
            at android.view.View.getDisplayList(View.java:13300)
            at android.view.View.getDisplayList(View.java:13404)
            at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1570)
            at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1449)
            at android.view.ViewRootImpl.draw(ViewRootImpl.java:2377)
            at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2249)
            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1879)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
            at android.view.Choreographer.doCallbacks(Choreographer.java:574)
            at android.view.Choreographer.doFrame(Choreographer.java:544)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
片段A的代码:

@EFragment(R.layout.test_bordeaux_a_view)
公共类TestBordeauxAFragment扩展了片段{

@Bean
DirectionsAdapter mDirectionsAdapter;

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

    RecyclerView mDirectionsRecyclerView = (RecyclerView) rootView.findViewById(R.id.mDirectionsRecyclerView);
    mDirectionsRecyclerView.setHasFixedSize(true);
    mDirectionsRecyclerView.setItemAnimator(new DefaultItemAnimator());
    LinearLayoutManager mLayoutManagerLM = new LinearLayoutManager(getActivity());
    mLayoutManagerLM.setOrientation(LinearLayoutManager.HORIZONTAL);
    mDirectionsRecyclerView.setLayoutManager(mLayoutManagerLM);
    //mDirectionsRecyclerView.setListener(this);
    mDirectionsRecyclerView.setAdapter(mDirectionsAdapter);

    //Use Retrofit to execute a request on my API
    RestProvider<CityService> bordeauxServiceRestProvider = new RestProvider<>();
    bordeauxServiceRestProvider.getService(CityService.class).getDirections(1, "A", new Callback<Result<Direction>>() {
        @Override
        public void success(Result<Direction> directionResult, Response response) {
            mDirectionsAdapter.addItems(directionResult.getCollection(), mDirectionsAdapter.getItemCount());
            mDirectionsAdapter.notifyDataSetChanged();
        }

        @Override
        public void failure(RetrofitError error) {

        }
    });

    return rootView;
}
@Bean
方向适配器mDirectionsAdapter;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.test\u bordeaux\u a\u视图,容器,错误);
RecyclerView mDirectionsRecyclerView=(RecyclerView)rootView.findViewById(R.id.mDirectionsRecyclerView);
mDirectionsRecyclerView.setHasFixedSize(true);
mDirectionsRecyclerView.setItemAnimator(新的DefaultItemAnimator());
LinearLayoutManager mLayoutManagerLM=新的LinearLayoutManager(getActivity());
MLAyoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mDirectionsRecyclerView.setLayoutManager(mLayoutManagerLM);
//mDirectionsRecyclerView.setListener(此);
MDirectionsRecyclererview.setAdapter(mDirectionsAdapter);
//使用改装在my API上执行请求
RestProvider bordeauxServiceRestProvider=新的RestProvider();
bordeauxServiceRestProvider.getService(CityService.class).getDirections(1,“A”,新回调(){
@凌驾
public void成功(结果方向结果响应){
addItems(directionResult.getCollection(),mDirectionsAdapter.getItemCount());
mDirectionsAdapter.notifyDataSetChanged();
}
@凌驾
公共无效失败(错误){
}
});
返回rootView;
}
}


感谢您的帮助

您在哪里实例化了mDirectionsAdapter类?我猜他正在使用Android注释,所以bean是为他创建的。您是否尝试过在@afterview方法的
onCreateView
中移动代码?此外,您需要使用@ViewById注释检索UI元素。是的,昆汀我使用AndroidAnnotations,我尝试使用AfterViews方法,但她从未调用过,可能是因为我的ViewPager。我不知道为什么从未调用我的AfterViews方法,有人知道吗?你在哪里实例化mDirectionsAdapter类?我猜他在使用Android注释,所以bean是为他创建的。您是否尝试过在@afterview方法的
onCreateView
中移动代码?此外,您需要使用@ViewById注释检索UI元素。是的,昆汀我使用AndroidAnnotations,我尝试使用AfterViews方法,但她从未调用过,可能是因为我的ViewPager。我不知道为什么我的方法AfterViews从未调用过,有人知道吗?