How to set the height of an item row in GridLayoutManager

后端 未结 8 718
有刺的猬
有刺的猬 2021-01-31 03:18

My Recycler Item which inflate in onCreateViewHolder




        
8条回答
  •  误落风尘
    2021-01-31 03:50

    sometime, getting size of inflate view in adapter return 0 or negative. another approach is get required size from out side the adapter, manipulate it and set it into view. in my case, another problem was size set effectless. so i set the size using layout parameter

    here is setting my adapter in activity:

    Display display = MainActivity.this.getWindowManager().getDefaultDisplay();
                        Point size = new Point();
                        display.getSize(size);
                        int  y = size.y;
                        y=(int)y/2;
     GridLayoutManager linearLayoutManager = new GridLayoutManager(MainActivity.this,2);
                        recyclerView.setLayoutManager(linearLayoutManager);
                        NewOrderAdapter newOrderAdapter=new NewOrderAdapter(MainActivity.this,arrayListname,arrayListimage,y);
                        recyclerView.setAdapter(newOrderAdapter);
    

    and i set view size like this:

    @Override
        public myviewholder onCreateViewHolder(ViewGroup viewGroup, int i) {
            View view = inflator.inflate(R.layout.new_order_row, viewGroup, false);
            GridLayoutManager.LayoutParams params = (GridLayoutManager.LayoutParams) view.getLayoutParams();
            params.height = ysize;
            view.setLayoutParams(params);
            myviewholder holder = new myviewholder(view);
            return holder;
        }
    

    and dont forget to set a height to layout in your layout for initializatiin

提交回复
热议问题