私はそれを水平にして使用していRecyclerView
ますLinearLayoutManager
。ビューごとに 3 つのアイテムを表示し、エンドレス スクロールを使用しています。私の問題は、それらが3つの画像であり、中央の画像を2倍に拡大したいのですが、コントローラーを制御してそれを理解できないことです。これを行う方法はありますか?
例) [] [] [] = 1 つのビューですが、中央のビューは 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;
}
}