[英]How to combine Recyclerview and Fragment?
我想在一个使用TabLayout(Fragment)的Activity中合并一个Recyclerview,以便我可以在不同的列表之间滑动。 但是到目前为止,我只实现了执行ListActivity或选项卡式活动(android studio中的标准活动),但没有两者都做。 如果有人可以提供帮助,我们将非常高兴。
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 :
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);
}
}
尝试执行以下步骤:
Toolbar
, TabLayout
和ViewPager
设计您的activity_main.xml
RecyclerView
设计要为每个Tab
内容显示的片段的布局XML。 FragmentPagerAdapter
填充Fragments
上ViewPager
ViewPager.setAdapter(FragmentPagerAdapter)
将FragmentPagerAdapter
设置为ViewPager
TabLayout.setupWithViewPager(ViewPager)
使ViewPager
可以使用TabLayout
功能。 Fragment
,创建RecyclerViewAdapter
以将数据填充到RecyclerView
这是一个简单的教程 。 希望这会有所帮助〜
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.