RecyclerView in Fragment - No Adapter Attached, Skipping Layout

前端 未结 1 1021
孤街浪徒
孤街浪徒 2020-12-11 23:09

I have an odd situation, I have an Activity hosting a TabLayout/Viewpager that populates data based on changes to a Firebase Database. Unfortunatel

相关标签:
1条回答
  • 2020-12-11 23:38

    Move your Adapter from onCreateView to onActivityCreated method after you have read data from firebase.

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    
    //read Poll data from firebase mPollsRef for example
    //.... database reference to firebase
    //Query mPollsRef = databaseReference.child("pools").limitToFirst(200);
    
    
        mRecyclerview.setLayoutManager(mLayoutManager);
        mFireAdapter = new FirebaseRecyclerAdapter<Poll, PollHolder>(Poll.class, R.layout.latest_item, PollHolder.class, mPollsRef) {
        @Override
        protected void populateViewHolder(PollHolder viewHolder, Poll model, int position) {
            viewHolder.mPollQuestion.setText(model.getQuestion());
            Picasso.with(getActivity().getApplicationContext())
                    .load(model.getImage_URL())
                    .fit()
                    .into(viewHolder.mPollImage);
            Log.v("QUESTION", model.getQuestion());
            Log.v("IMAGE", model.getImage_URL());
            }
        };
        mRecyclerview.setAdapter(mFireAdapter);
    
    }
    

    My code for initialize Pager at HostActivity.java

    private FragmentPagerAdapter mPagerAdapter;
    private ViewPager mViewPager;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_absence);
    
    
        // Create the adapter that will return a fragment for each section
        mPagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
            private final Fragment[] mFragments = new Fragment[] {
                    new MyAbsenceFragment(),
                    new MyAttendanceFragment(),
                    new AbsTypesFragment(),
                    new LiveFragment(),
            };
            private final String[] mFragmentNames = new String[] {
                    "Absences",
                    "Attendances",
                    "AbsTypes",
                    "Live"
            };
            @Override
            public Fragment getItem(int position) {
                return mFragments[position];
            }
            @Override
            public int getCount() {
                return mFragments.length;
            }
            @Override
            public CharSequence getPageTitle(int position) {
                return mFragmentNames[position];
            }
        };
        // Set up the ViewPager with the sections adapter.
        mViewPager = (ViewPager) findViewById(R.id.container);
        mViewPager.setAdapter(mPagerAdapter);
    
    0 讨论(0)
提交回复
热议问题