我使用的是RecyclerView
而LinearLayoutManager
即是水平的。我每个视图显示3个项目并使用无限滚动。我的问题是,他们是3张图片,我希望中间图片被放大2倍,但我无法控制控制器来弄清楚,有没有办法做到这一点?Recyclerview无法控制视图
前)[] [] [] =一个观点,但中间的一个是2倍的规模和用户可以左右滚动
代码段: 这里是我的活动是如何初始化适配器:
LinearLayoutManager layout
= new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL, false);
// constant data
constants = new Constants();
recyclerView = (RecyclerView) findViewById(R.id.ModelCarousal);
recyclerView.setLayoutManager(layout);
recyclerView.setAdapter(new Model_Controller(getApplicationContext(), constants.Constants()));
recyclerView.addOnScrollListener(new EndlessScrollListener(layout) {
@Override
public void onLoadMore(int page, int totalItemsCount) {
// Triggered only when new data needs to be appended to the list
}
});
适配器:
public class Model_Controller extends RecyclerView.Adapter<Model_Controller.MyViewHolder> {
Context mContext;
List<Model> models;
int[] img = new int[]{R.drawable.ic_item,R.drawable.ic_item,R.drawable.ic_item,R.drawable.ic_item
,R.drawable.ic_item,R.drawable.ic_item,R.drawable.ic_item,R.drawable.ic_item,R.drawable.ic_item
,R.drawable.ic_item,R.drawable.ic_item,R.drawable.ic_item,R.drawable.ic_item,R.drawable.ic_item};
// view holder of badges
public class MyViewHolder extends RecyclerView.ViewHolder {
public ImageView viewTwo;
public MyViewHolder(View view) {
super(view);
viewTwo = (ImageView) view.findViewById(R.id.model_child);
}
}
// constructor
public Badge_Controller(Context c, List<Model> modelSet){
mContext = c;
models = modelSet;
}
int height;
int width;
// returning the set of the holder for the child layout of badge view
@Override
public Model_Controller.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.model_child, parent, false);
height = parent.getMeasuredHeight() * 4;
width = parent.getWidth()*2;
return new MyViewHolder(itemView);
}
// what the user is seeing
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Helpers helpers = new Helpers();
holder.viewTwo.setImageDrawable(mContext.getDrawable(img[position]));
}
}
// size
@Override
public int getItemCount() {
return models.size()+2;
}
@Override
public int getItemViewType(int position) {
if (position == 0 || position == getItemCount()-1) {
return 1;
}
return 2;
}
}
你可以发布你的代码。 –
好吧,我添加了它,对不起! – codeNinjaBro