[英]How to combine Recyclerview and Fragment?
I would like to combine a Recyclerview in an Activity that uses a TabLayout(Fragment), so that I can swipe between the different lists. 我想在一个使用TabLayout(Fragment)的Activity中合并一个Recyclerview,以便我可以在不同的列表之间滑动。 However so far I only achieve to do either a ListActivity OR the tabbed activity (the standard one from android studio) but not both. 但是到目前为止,我只实现了执行ListActivity或选项卡式活动(android studio中的标准活动),但没有两者都做。 Would be glad if someone could help on this. 如果有人可以提供帮助,我们将非常高兴。
AdapterFish.java AdapterFish.java
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.Collections;
import java.util.List;
public class AdapterFish extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private LayoutInflater inflater;
List<DataFish> data= Collections.emptyList();
DataFish current;
int currentPos=0;
// create constructor to innitilize context and data sent from MainActivity
public AdapterFish(Context context, List<DataFish> data){
this.context=context;
inflater= LayoutInflater.from(context);
this.data=data;
}
// Inflate the layout when viewholder created
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=inflater.inflate(R.layout.tab2, parent,false);
MyHolder holder=new MyHolder(view);
return holder;
}
// Bind data
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
// Get current position of item in recyclerview to bind data and assign values from list
MyHolder myHolder= (MyHolder) holder;
DataFish current=data.get(position);
myHolder.textmatkul.setText(current.matkul);
myHolder.textwaktu_batal.setText("Tanggal Batal: " + current.waktu_batal);
myHolder.textwaktu_pengganti.setText("Tanggal Pengganti: " + current.waktu_pengganti);
myHolder.textdosen.setText("Nama Dosen: " + current.dosen);
myHolder.textruang.setText("Ruang: " + current.ruang);
myHolder.textalasan.setText("Alasan: " + current.alasan);
}
// return total item from List
@Override
public int getItemCount() {
return data.size();
}
class MyHolder extends RecyclerView.ViewHolder{
TextView textmatkul;
TextView textwaktu_batal;
TextView textwaktu_pengganti;
TextView textdosen;
TextView textruang;
TextView textalasan;
// create constructor to get widget reference
public MyHolder(View itemView) {
super(itemView);
textmatkul= (TextView) itemView.findViewById(R.id.textmatkul);
textwaktu_batal = (TextView) itemView.findViewById(R.id.textwaktu_batal);
textwaktu_pengganti = (TextView) itemView.findViewById(R.id.textwaktu_pengganti);
textdosen = (TextView) itemView.findViewById(R.id.textdosen);
textalasan = (TextView) itemView.findViewById(R.id.textalasan);
textruang = (TextView) itemView.findViewById(R.id.textruang);
}
}
}
Tab2.java : Tab2.java :
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by Lamberto on 03/04/2017.
*/
public class Tab2 extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab2, container, false);
}
}
Try to follow below steps: 尝试执行以下步骤:
activity_main.xml
with Toolbar
, TabLayout
and ViewPager
使用Toolbar
, TabLayout
和ViewPager
设计您的activity_main.xml
RecyclerView
for your fragments that you want to show for each Tab
content. 使用RecyclerView
设计要为每个Tab
内容显示的片段的布局XML。 FragmentPagerAdapter
to populate Fragments
on ViewPager
使用FragmentPagerAdapter
填充Fragments
上ViewPager
FragmentPagerAdapter
to ViewPager
using ViewPager.setAdapter(FragmentPagerAdapter)
使用ViewPager.setAdapter(FragmentPagerAdapter)
将FragmentPagerAdapter
设置为ViewPager
TabLayout.setupWithViewPager(ViewPager)
to give ability to ViewPager
to work with TabLayout
functionalities. 使用TabLayout.setupWithViewPager(ViewPager)
使ViewPager
可以使用TabLayout
功能。 Fragment
, create RecyclerViewAdapter
to populate data to RecyclerView
对于单个Fragment
,创建RecyclerViewAdapter
以将数据填充到RecyclerView
Here is a simple tutorial . 这是一个简单的教程 。 Hope this will help~ 希望这会有所帮助〜
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.