无法以编程方式膨胀 recyclerview

Unable to inflate recycler view programatically

我想在片段中以编程方式膨胀滑块和回收器视图。 Slider 成功膨胀,滑动刷新也正常。

NO ERROR IN THE LOG BUT THE RECYLER VIEW DOESN'T GET INFLATED

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        View fragmentView = inflater.inflate(R.layout.fragment_conversation, container, false);
        RelativeLayout fragmentRelativeLayout = (RelativeLayout)fragmentView.findViewById(R.id.conversation_fragment_main);

        View header = LayoutInflater.from(getActivity()).inflate(R.layout.slider, container, false);

        View recylerList = LayoutInflater.from(getActivity()).inflate(R.layout.news_layout_recyler_view,container,false);

        headerSlider = (SliderLayout)header.findViewById(R.id.slider);

        TextSliderView textSliderView = new TextSliderView(getActivity().getApplicationContext());
        // initialize a SliderLayout
        textSliderView
                .description("Hello")
                .image("http://media2.intoday.in/indiatoday/images/stories/pawan-kalyan-story-650_010215012726.jpg")
                .setScaleType(BaseSliderView.ScaleType.Fit)
                .setOnSliderClickListener(this);

        //add your extra information
        textSliderView.bundle(new Bundle());
        textSliderView.getBundle()
                .putString("extra", "POWER STAR");

        headerSlider.addSlider(textSliderView);

        headerSlider.setPresetTransformer(SliderLayout.Transformer.Accordion);
        headerSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
        headerSlider.setCustomAnimation(new DescriptionAnimation());
        headerSlider.setDuration(4000);
        headerSlider.addOnPageChangeListener(this);

        fragmentRelativeLayout.addView(header);
        fragmentRelativeLayout.addView(recylerList);


        newsList = (RecyclerView)recylerList.findViewById(R.id.listNews);
        //newsList = (RecyclerView) recylerList.findViewById(R.id.listNews);
        newsList.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL_LIST));

        callBackListener = this;

        newsListObject = retrieveFromLocalDb.retrieveNewsList();

        // Initializing Swipe To Refresh Layout
       //swipeToRefreshNewsList = (SwipeRefreshLayout)fragmentView.findViewById(R.id.swipeToRefreshNews);
        swipeToRefreshNewsList = (SwipeRefreshLayout) recylerList.findViewById(R.id.swipeToRefreshNews);
        swipeToRefreshNewsList.setOnRefreshListener(this);

        adapter = new recylerViewNewsAdapter(getActivity(),newsListObject);

        if(newsListObject.isEmpty()) {
            new loadNewsListInBackground(this).execute();
        }

        adapter.setNewsDataList((ArrayList<newsModelStore>) newsListObject);
        newsList.setAdapter(adapter);
        newsList.setLayoutManager(new LinearLayoutManager(getActivity()));



        return fragmentView;
    }

news_layout_recyler_view.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v4.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipeToRefreshNews"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listNews"
        >

    </android.support.v7.widget.RecyclerView>


</android.support.v4.widget.SwipeRefreshLayout>

我很确定数据已检索到,正如我在调试日志中看到的那样。我不知道为什么它没有出现。适配器如下:

 package com.example.prabhukonchada.fanstationmvp;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.squareup.picasso.Picasso;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Created by prabhukonchada on 26/11/15.
 */
public class recylerViewNewsAdapter extends RecyclerView.Adapter<recylerViewNewsAdapter.newsListViewHolder> {

    List<newsModelStore> newsModelStoreList = Collections.emptyList();
    private LayoutInflater inflater;
    Context context;

    public recylerViewNewsAdapter(Context context,List<newsModelStore> newsModelStoreList)
    {
        this.newsModelStoreList = newsModelStoreList;
        inflater = LayoutInflater.from(context);
        this.context = context;
    }

    @Override
    public newsListViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = inflater.inflate(R.layout.news_layout,parent,false);
        newsListViewHolder newsHolder = new newsListViewHolder(view);

        return newsHolder;
    }

    @Override
    public void onBindViewHolder(newsListViewHolder holder, int position) {

        holder.newsInformation.setText(newsModelStoreList.get(position).getNewsInformation());

        if(newsModelStoreList.get(position).getImageUrl()!= null) {
            Picasso.with(context).load(newsModelStoreList.get(position).getImageUrl()).into(holder.newsImage);
        }else
        {
            Drawable userImageDrawable = context.getResources().getDrawable(R.drawable.super_user);
            holder.newsImage.setImageDrawable(userImageDrawable);
        }

    }

    @Override
    public int getItemCount() {
        return 0;
    }

    class newsListViewHolder extends RecyclerView.ViewHolder
    {
        TextView newsInformation;
        ImageView newsImage;
        TextView timeStatus;
        ImageView awesome;
        TextView awesomenessCount;
        View view;

        public newsListViewHolder(View itemView)
        {
            super(itemView);
            newsInformation = (TextView)itemView.findViewById(R.id.newsInformation);
            newsImage = (ImageView)itemView.findViewById(R.id.newsImage);
//            timeStatus = (TextView)itemView.findViewById(R.id.started_timestamp);
//            awesome = (ImageView)itemView.findViewById(R.id.awesomeImage);
//            awesomenessCount = (TextView)itemView.findViewById(R.id.awesomenessCount);
       }
    }

    public void setNewsDataList(ArrayList<newsModelStore> newsModelStoreList)
    {
        this.newsModelStoreList = newsModelStoreList;
        notifyDataSetChanged();
    }


}

难怪你return那个recycler view adapter没有记录:

 @Override
    public int getItemCount() {
        return 0;
    }

改为newsModelStoreList.size()