Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 像旋转木马一样,在RecyclerView中同时滚动多个项目_Android_Android Recyclerview_Android Viewpager_Carousel - Fatal编程技术网

Android 像旋转木马一样,在RecyclerView中同时滚动多个项目

Android 像旋转木马一样,在RecyclerView中同时滚动多个项目,android,android-recyclerview,android-viewpager,carousel,Android,Android Recyclerview,Android Viewpager,Carousel,我想使用RecyclerView像一个旋转木马一样在屏幕上同时显示3个项目 首先,在屏幕上,它显示项目1、2和3。 当我滑动RecyclerView(像一个ViewPager)时,我想显示如下项目#4#5 et#6: 第一屏 滚动后的屏幕 如何实现这个工作流?谢谢你的帮助 这是我的活动 公共类旋转木马活动{ 私人回收站; @凌驾 受保护的int getLayoutResourceId(){ 返回R.layout.carousel_活动; } @凌驾 受保护的无效设置视图() { re

我想使用RecyclerView像一个旋转木马一样在屏幕上同时显示3个项目

首先,在屏幕上,它显示项目1、2和3。 当我滑动RecyclerView(像一个ViewPager)时,我想显示如下项目#4#5 et#6:

  • 第一屏

  • 滚动后的屏幕

如何实现这个工作流?谢谢你的帮助

这是我的活动

公共类旋转木马活动{
私人回收站;
@凌驾
受保护的int getLayoutResourceId(){
返回R.layout.carousel_活动;
}
@凌驾
受保护的无效设置视图()
{
recyclerView=(recyclerView)findViewById(R.id.recyclerView);
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
ArrayList items=新建ArrayList();
添加(新的CarouselItem());
添加(新的CarouselItem());
添加(新的CarouselItem());
添加(新的CarouselItem());
添加(新的CarouselItem());
添加(新的CarouselItem());
setLayoutManager(新的LinearLayoutManager(上下文,LinearLayoutManager.HORIZONTAL,false));
recyclerView.setHasFixedSize(true);
setAdapter(新的CarouselAdapter(上下文、活动、项));
}
}
我的适配器呢

公共类CarouselAdapter扩展了RecyclerView.Adapter{
受保护的ArrayList列表项;
受保护的语境;
受保护的活动;
充气机;
公共旋转木马(上下文,
活动,,
ArrayList(列表项)
{
this.context=上下文;
这个。活动=活动;
this.inflater=LayoutInflater.from(上下文);
this.listItems=listItems;
}
@凌驾
public int getItemCount()
{
返回listItems.size();
}
@凌驾
public RecyclerView.ViewHolder onCreateViewHolder(视图组父级,int-viewType)
{
视图v=充气机。充气(R.layout.carousel_项目,父项,false);
返回新项目持有人(v);
}
@凌驾
public void onBindViewHolder(RecyclerView.ViewHolder,最终int位置)
{
项目持有人项目持有人=(项目持有人)持有人;
itemHolder.itemView.getLayoutParams().width=ScreenHelper.getScreenWidthRatio(活动,33);
itemHolder.itemView.getLayoutParams().height=ScreenHelper.getScreenWidthRatio(活动,50);
itemHolder.itemView.setBackgroundColor((位置%2==0)?Color.RED:Color.BLUE);
内页=位置+1;
itemHolder.tvPage.setText(“+页);
}
受保护的静态类ItemHolder扩展了RecyclerView.ViewHolder
{
私有文本查看电视页面;
公共项目持有者(查看项目视图)
{
超级(项目视图);
tvPage=(TextView)itemView.findViewById(R.id.tv_页面);
}
}
}
我认为这会有帮助……我认为这会有帮助。。。
public class CarouselActivity extends BaseActivity {

private RecyclerView recyclerView;

@Override
protected int getLayoutResourceId() {
    return R.layout.carousel_activity;
}

@Override
protected void setupViews()
{
    recyclerView = (RecyclerView)findViewById(R.id.recyclerview);
}


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

    ArrayList<CarouselItem> items = new ArrayList<>();

    items.add(new CarouselItem());
    items.add(new CarouselItem());
    items.add(new CarouselItem());
    items.add(new CarouselItem());
    items.add(new CarouselItem());
    items.add(new CarouselItem());


    recyclerView.setLayoutManager(new LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false));
    recyclerView.setHasFixedSize(true);
    recyclerView.setAdapter(new CarouselAdapter(context,activity,items));
}
}
public class CarouselAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

protected ArrayList<CarouselItem> listItems;

protected Context context;
protected Activity activity;
protected LayoutInflater inflater;

public CarouselAdapter(Context context,
                       Activity activity,
                       ArrayList<CarouselItem> listItems)
{
    this.context = context;
    this.activity = activity;
    this.inflater = LayoutInflater.from (context);
    this.listItems = listItems;
}

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

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
    View v = inflater.inflate(R.layout.carousel_item, parent, false);

    return new ItemHolder(v);
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position)
{
    ItemHolder itemHolder = (ItemHolder)holder;

    itemHolder.itemView.getLayoutParams().width = ScreenHelper.getScreenWidthRatio(activity,33);
    itemHolder.itemView.getLayoutParams().height = ScreenHelper.getScreenWidthRatio(activity,50);

    itemHolder.itemView.setBackgroundColor((position % 2 == 0 ) ? Color.RED : Color.BLUE);

    int page = position + 1;
    itemHolder.tvPage.setText("" + page);
}

protected static class ItemHolder extends RecyclerView.ViewHolder
{
    private TextView tvPage;

    public ItemHolder(View itemView)
    {
        super(itemView);

        tvPage = (TextView)itemView.findViewById(R.id.tv_page);
    }
}
}