Android 是否可以使用viewpager显示recycleview

Android 是否可以使用viewpager显示recycleview,android,Android,在我开始之前,我在想有没有可能显示一个带有文本视图和循环视图的布局。。。使用viewpager?? 类似于下面的布局,我想用viewpager显示它。可能吗 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_widt

在我开始之前,我在想有没有可能显示一个带有文本视图和循环视图的布局。。。使用viewpager?? 类似于下面的布局,我想用viewpager显示它。可能吗

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/dynamic"
>


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="30dp"
    android:text="Large Text"
    android:textStyle="bold"
    android:layout_marginTop="20px"
    android:layout_marginLeft="20px"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20px"
    android:layout_marginLeft="20px"
    android:text="New Text" />
<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_detail"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20px"
    android:layout_marginLeft="20px"
    android:scrollbars="vertical">

</android.support.v7.widget.RecyclerView>
可视寻呼机适配器

public class CustomSwipAdapter extends PagerAdapter {
private Context context;
private LayoutInflater layoutInflater;
private Cursor cursor;
private int point;
private RecyclerView recyclerView;
private IELTS_detail_row_adapter adapter;
private RecyclerView.LayoutManager layoutManager;
public CustomSwipAdapter(Context context,Cursor cursor,int point)
{
    this.context=context;
    this.cursor=cursor;
    this.point=point;

}
@Override
public int getCount() {
    return cursor.getCount();
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return (view==(LinearLayout)object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    List<Mentor_detail_row_info> data=new ArrayList<>();
    layoutInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View item_view = layoutInflater.inflate(R.layout.swip_layout,container,false);
    TextView textView=(TextView)item_view.findViewById(R.id.page_title);
    TextView textView1=(TextView)item_view.findViewById(R.id.info_text);
    recyclerView =(RecyclerView)item_view.findViewById(R.id.recycler_detail);
    recyclerView.addItemDecoration(new DividerItemDecoration(context, null, false, true));
    recyclerView.setHasFixedSize(true);
    layoutManager=new LinearLayoutManager(context);
    recyclerView.setLayoutManager(layoutManager);


    textView1.setMovementMethod(new ScrollingMovementMethod());
    cursor.moveToPosition(position);
    textView.setText(cursor.getString(1));
    textView1.setText(cursor.getString(3));
    String[]links=cursor.getString(3).split(";");
    for(int i=0;i<=links.length;i++)
    {
        Mentor_detail_row_info current=new Mentor_detail_row_info();
        if(links[i]!=null)
        {
            current.link=links[i];
            data.add(current);
        }
    }
    adapter=new IELTS_detail_row_adapter(context,data);
    recyclerView.setAdapter(adapter);

    container.addView(item_view);


    return item_view;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
   container.removeView((LinearLayout)object);
}
}
公共类CustomSwipAdapter扩展了PagerAdapter{
私人语境;
私人停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场停车场;
私有游标;
私人积分点;
私人回收站;
私人雅思考试(详情)(行)(适配器);;
private RecyclerView.LayoutManager LayoutManager;
公共CustomSwipAdapter(上下文上下文、光标、int点)
{
this.context=context;
this.cursor=cursor;
这个点=点;
}
@凌驾
public int getCount(){
返回cursor.getCount();
}
@凌驾
公共布尔值isViewFromObject(视图,对象){
返回(视图==(LinearLayout)对象);
}
@凌驾
公共对象实例化项(视图组容器,int位置){
列表数据=新的ArrayList();
layoutInflater=(layoutInflater)context.getSystemService(context.LAYOUT\u INFLATER\u SERVICE);
视图项\视图=布局更平坦。充气(右布局。开关\布局,容器,假);
TextView TextView=(TextView)item_view.findViewById(R.id.page_title);
TextView textView1=(TextView)item_view.findViewById(R.id.info_text);
recyclerView=(recyclerView)项\ u视图.findViewById(R.id.recycler\ u详细信息);
addItemDecoration(新的DividerItemDecoration(context,null,false,true));
recyclerView.setHasFixedSize(true);
layoutManager=新的LinearLayoutManager(上下文);
recyclerView.setLayoutManager(layoutManager);
textView1.setMovementMethod(新的ScrollingMovementMethod());
光标。移动位置(位置);
setText(cursor.getString(1));
textView1.setText(cursor.getString(3));
String[]links=cursor.getString(3).split(;);
对于(inti=0;i是的

您可以在调用为ViewPager页面的片段中设置recyclerview。当ViewPager加载您的片段时,recyclerview将实例化并填充

缺点:您可能会遇到水平滑动(viewpager)和垂直滑动(recyclerview)之间的延迟

如果您需要更具体的答案,请提出更具体的问题。

是的

您可以在调用为ViewPager页面的片段中设置recyclerview。当ViewPager加载您的片段时,recyclerview将实例化并填充

缺点:您可能会遇到水平滑动(viewpager)和垂直滑动(recyclerview)之间的延迟


如果您需要更具体的答案,请提出更具体的问题。

您可以将
FragmentPagerAdapter
添加到您的viewPager,并将recyclerView添加到您的片段中。将此源代码用作示例-

您可以将
FragmentPagerAdapter
添加到您的viewPager,并将recyclerView添加到片段中。将此源代码用作检查ple-

为什么不可能?为什么不可能?我刚刚在我现有的项目上试用过,结果失败了….:p你能检查一下我犯了什么错误吗?我上传了代码..我刚刚在我现有的项目上试用过,结果失败了..:p你能检查一下我犯了什么错误吗?我上传了代码。。
public class CustomSwipAdapter extends PagerAdapter {
private Context context;
private LayoutInflater layoutInflater;
private Cursor cursor;
private int point;
private RecyclerView recyclerView;
private IELTS_detail_row_adapter adapter;
private RecyclerView.LayoutManager layoutManager;
public CustomSwipAdapter(Context context,Cursor cursor,int point)
{
    this.context=context;
    this.cursor=cursor;
    this.point=point;

}
@Override
public int getCount() {
    return cursor.getCount();
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return (view==(LinearLayout)object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    List<Mentor_detail_row_info> data=new ArrayList<>();
    layoutInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View item_view = layoutInflater.inflate(R.layout.swip_layout,container,false);
    TextView textView=(TextView)item_view.findViewById(R.id.page_title);
    TextView textView1=(TextView)item_view.findViewById(R.id.info_text);
    recyclerView =(RecyclerView)item_view.findViewById(R.id.recycler_detail);
    recyclerView.addItemDecoration(new DividerItemDecoration(context, null, false, true));
    recyclerView.setHasFixedSize(true);
    layoutManager=new LinearLayoutManager(context);
    recyclerView.setLayoutManager(layoutManager);


    textView1.setMovementMethod(new ScrollingMovementMethod());
    cursor.moveToPosition(position);
    textView.setText(cursor.getString(1));
    textView1.setText(cursor.getString(3));
    String[]links=cursor.getString(3).split(";");
    for(int i=0;i<=links.length;i++)
    {
        Mentor_detail_row_info current=new Mentor_detail_row_info();
        if(links[i]!=null)
        {
            current.link=links[i];
            data.add(current);
        }
    }
    adapter=new IELTS_detail_row_adapter(context,data);
    recyclerView.setAdapter(adapter);

    container.addView(item_view);


    return item_view;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
   container.removeView((LinearLayout)object);
}
}
public class IELTS_detail_row_adapter extends     RecyclerView.Adapter<IELTS_detail_row_adapter.Mentor_menu_viewHolder> {
private LayoutInflater inflater;
List<Mentor_detail_row_info> data = Collections.emptyList();
Context context;
private ClickListener clickListener;

public IELTS_detail_row_adapter(Context context, List<Mentor_detail_row_info> data) {
    this.context=context;
    inflater = LayoutInflater.from(context);
    this.data = data;

}

@Override
public Mentor_menu_viewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.custom_row_detail, parent, false);
    Mentor_menu_viewHolder holder = new Mentor_menu_viewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(Mentor_menu_viewHolder holder, int position) {
    Mentor_detail_row_info current = data.get(position);
    holder.link.setText(current.link);

}
public void setClickListener(ClickListener clickListener)
{
    this.clickListener=clickListener;
}

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

class Mentor_menu_viewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    TextView link;

    public Mentor_menu_viewHolder(View itemView) {
        super(itemView);
        itemView.setOnClickListener(this);
        link = (TextView) itemView.findViewById(R.id.row_list_link);
    }

    @Override
    public void onClick(View v) {
        Mentor_detail_row_info current=data.get(getAdapterPosition());
        clickListener.ItemClick(v,current.link);

    }

}
public interface ClickListener{
    public void ItemClick(View view,String link);

}

}