【问题标题】:Recyclerview in fragment inside a viewpager视图分页器内片段中的 Recyclerview
【发布时间】:2018-03-12 23:32:33
【问题描述】:

我想在我的 3 片段查看器的片段中使用 recyclerview。我写了代码,它运行得很完美,但我不知道为什么它太慢了。当我从一个片段切换到另一个片段时,几乎需要半分钟。不知道我在这里犯了什么错误。

主要活动

public class MainActivity extends AppCompatActivity {

    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        toolbar = (Toolbar)findViewById(R.id.toolBar);
        tabLayout = (TabLayout)findViewById(R.id.tabs);
        viewPager = (ViewPager)findViewById(R.id.viewPager);

        setSupportActionBar(toolbar);
        ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
        viewPagerAdapter.addFragment(new OneFragment(), "One");
        viewPagerAdapter.addFragment(new TwoFragment(), "Two");
        viewPagerAdapter.addFragment(new ThreeFragment(), "Three");

        viewPager.setAdapter(viewPagerAdapter);
        tabLayout.setupWithViewPager(viewPager);

    }
}

这是我尝试实现 recyclerview 的片段之一。

片段

public class TwoFragment extends Fragment {

    public TwoFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view =  inflater.inflate(R.layout.fragment_two, container, false);

        OurData ourData = new OurData();
        ourData.pic.add(R.drawable.b);
        ourData.title.add("Hello");
        RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.listRecyclerView);
        ListAdapter listAdapter = new ListAdapter();
        recyclerView.setAdapter((listAdapter));
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity());
        recyclerView.setLayoutManager(layoutManager);

        return view;
    }
}

public class ListAdapter extends RecyclerView.Adapter {

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);
        return new ListViewHolder(view);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        ((ListViewHolder) holder).bindView(position);
    }

    @Override
    public int getItemCount() {
        return OurData.title.size();
    }

    private class ListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        private TextView text;
        private ImageView image;

        public ListViewHolder(View itemview) {
            super(itemview);
            text = (TextView) itemview.findViewById(R.id.textF);
            image = (ImageView) itemview.findViewById(R.id.imageF);
            itemview.setOnClickListener(this);
        }

        public void bindView(int position) {
            text.setText(OurData.title.get(position));
            image.setImageResource(OurData.pic.get(position));
        }

        public void onClick(View view) {

        }
    }
}

public class OurData {

    public static ArrayList<String> title = new ArrayList<String>();
    public static ArrayList<Integer> pic = new ArrayList<Integer>();

}

我花了一整天的时间思考我做错了什么。请帮帮我!

【问题讨论】:

    标签: java android android-recyclerview android-viewpager fragment


    【解决方案1】:

    设置你的适配器recyclerView.setAdapter((listAdapter)); 插入 onViewCreated 而不是 onCreateView

    【讨论】:

    • 我的资源有问题。图片太大。谢谢
    【解决方案2】:

    我认为问题出在您的一种方法上。 也许是“我们的数据” 你确定吗:

     @Override
        public int getItemCount() {
            return OurData.title.size();
        }
    

    还可以尝试在每个代码中使用 Log 并查看需要时间的部分,尤其是“OurData”

    【讨论】:

    • 现在解决了。问题出在我的资源中。图片太大了。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多