视图中的所有应用程序一次显示3个应用程序,第4个是预览。当向左滑动时,应用程序将移动并放置在相应的位置,使视图更酷。
请帮我实现这个观点。
public class PageAdapter extends PagerAdapter {
View itemView;
Context context;
LayoutInflater inflater;
ArrayList<String> arrayList = new ArrayList<>();
public PageAdapter(Context context, ArrayList<String> arrayList) {
this.context = context;
this.arrayList = arrayList;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
if (inflater == null)
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.item_page, container, false);
TextView textView = view.findViewById(R.id.text_item);
Log.i("Position>>>>>>>> ", "" + position);
textView.setText(arrayList.get(position));
container.addView(view);
return view;
}
@Override
public int getCount() {
return arrayList.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public void destroyItem(ViewGroup collection, int position, Object view) {
collection.removeView((View) view);
}
View getLayoutView() {
if (itemView != null)
return itemView;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
itemView = inflater.inflate(R.layout.item_page, null);
return itemView;
}
}
它似乎不像一个视图寻呼机。它是使用水平布局管理器的循环视图。查看寻呼机不是构建的,而是用于显示此类内容。如果您看到顶部显示类别的标签栏,即包含(带有视图寻呼机的标签布局管理器)或tablayout showcase viewpager下面的crouser以及pagertransformation的实现。因此,如果您想实现它,您可以使用循环视图而不是使用视图寻呼机轻松实现它。
如果您正在寻找:RecyclerViewSnap
集成步骤:
在你的dependencies
中添加这一行:
实现'com.github.rubensousa:gravitysnaphelper:1.5'
然后简单地使用以下代码:
recyclerView.setLayoutManager(new LinearLayoutManager(this,
LinearLayoutManager.HORIZONTAL, false));
SnapHelper snapHelperStart = new GravitySnapHelper(Gravity.START);
snapHelperStart.attachToRecyclerView(startRecyclerView);
要了解有关此Snap效果的更多信息,请检查此Snap to center效果
PS:它设计用于与RecyclerView而不是ViewPager。