Я использую RecyclerView
с LinearLayoutManager
thats horizontal. Я показываю 3 пункта за просмотр и использую бесконечную прокрутку. Моя проблема в том, что у них 3 изображения, и я хочу, чтобы среднее изображение было увеличено на 2X, но я не могу получить контроль над контроллером, чтобы понять это, есть ли способ сделать это?Recyclerview не в состоянии контролировать вид
ех) [] [] [] = один вид, но средний будет 2X размер и пользователь может прокручивать влево и вправо
Код сниппета: Вот как я инициализировать в деятельности к адаптеру:
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