2016-02-08 44 views
1

我在Android应用程序中使用水平的RecyclerView。
一次显示屏幕上的两个项目(ImageViews)。RecyclerView的滚动效果

要做到这一点,我的每个ImageView的宽度设置为屏幕的一半ViewHolder类适配器:

public static class ViewHolder extends RecyclerView.ViewHolder { 

    private LinearLayout ll_Img; 
     private ImageView iv_ad; 


     private ViewHolder(View v) { 
      super(v); 

      ll_Img = (LinearLayout) itemView.findViewById(R.id.ll_Img); 
      ll_Img.getLayoutParams().width = (Utils.getScreenWidth(itemView.getContext())/2); 

      iv_ad = (ImageView) v.findViewById(R.id.iv_main_ad); 
     } 
    } 

并获得屏幕宽度:

public static int getScreenWidth(Context context) { 

    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
    Display display = wm.getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    int screenWidth = size.x; 

    return screenWidth; 
} 

它工作正常,但我想实现像iOS上的滚动效果,
每个滑动滚动一个项目,
,因此每次滑动2个项目必须适合屏幕宽度。

顺便说一句,两部影片的价值1000个字
所以在这里我现在有什么: https://drive.google.com/file/d/0B7j1Rf_oUEbLOWk1OUtpWXFpcEE/view?usp=sharing

我想实现(正如我的同事在iOS上实现的)什么: https://drive.google.com/file/d/0B6B-4-ITg1EQTElNTWsxMWg4aWs/view?usp=sharing

每一条建议都是值得赞赏的。

+0

这是一个viewpager,而不是recyclerview。此链接可能有助于https://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html –

+0

谢谢。非常有用的信息 – Androider

+0

@billynomates,再次感谢。我用这个信息完全达到了我想要的。你可以写一个答案,我可以接受它 – Androider

回答

1

这是一个viewpager,而不是recyclerview。此链接可以帮助https://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html

只是为了别人的利益:

getPageWidth()返回一个浮点数,0和1, 之间代表ViewPager的宽度的部分给定 页面应该占。默认情况下,页面宽度为1,但由 覆盖此设置,可以同时在屏幕上显示多个页面 。

0

不完全确定这是否会产生所需的效果,但是如果您使用的是linearlayoutmanager,则可以将scrolllistener添加到recyclerview中,并且每当调用它时,都使用linearlayout的方法scrollToPosition强制它滚动所有到下一个项目的方式。

+0

感谢您的回答。我已经实现了使用ViewPager所需的 – Androider