• 设置布局管理者添加给RecyclerView

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rv);        //设置布局管理者        //LinearLayoutManager:分竖直 横向        //Ctrl+Alt+M抽取代码        RecyclerView.LayoutManager layoutManger = getVerticalStaggered();        recyclerView.setLayoutManager(layoutManger);        //设置适配器        //        MyAdapter adapter=new MyAdapter();        //        recyclerView.setAdapter(adapter);        MyStaggerdGridAdapter adapter = new MyStaggerdGridAdapter();        recyclerView.setAdapter(adapter);    }    private RecyclerView.LayoutManager getVerticalStaggered() {        //1.spanCout 列数        //2.方向        return new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);    }    private RecyclerView.LayoutManager getHStaggered() {        //1.spanCout 列数        //2.方向        return new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.HORIZONTAL);    }}
  • onCreateViewHolder 和onBindViewHolder 方法中设置高度,或者宽度来调整布局。

/*** Created by Administrator on 2016/11/30.*///是什么?是一堆  get方法 。由rv,lv,gv viewpager调用// RecyclerView.Adapter封装了 getView优化//条目的高度由什么决定 ?由内容的高度public class MyStaggerdGridAdapter extends RecyclerView.Adapter {    //1.7 泛型自动推断    private List list = new ArrayList<>();    public MyStaggerdGridAdapter() {        for (int i = 0; i < 30; i++) {            list.add("经验值" + i);        }    }    //条目数量    @Override    public int getItemCount() {        return list.size();    }    //RecyclerView.ViewHolder是缓存条目控件    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        int itemId = R.layout.item;        // View itemView=View.inflate(parent.getContext(),itemId,null);        //1.条目布局        //2.RecyclerView  传入给item参考宽度        //3.是否把打气布局添加到父控件 true添加,报错 二次添加  false,不添加 仅参考宽度        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid, parent, false);        MyViewHolder myViewHolder = new MyViewHolder(itemView);        //字段        return myViewHolder;    }    private Random random = new Random();    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        MyViewHolder hd = (MyViewHolder) holder;        //数据        String item = list.get(position);        hd.text.setText(item);        RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) hd.img.getLayoutParams();        params.width = RelativeLayout.LayoutParams.MATCH_PARENT;        params.height = 200 + random.nextInt(50);        System.out.println(params);    }    static class MyViewHolder extends RecyclerView.ViewHolder {        @BindView(R.id.img)        ImageView img;        @BindView(R.id.text)        TextView text;        @BindView(R.id.activity_main)        RelativeLayout activityMain;        public MyViewHolder(View itemView) {            super(itemView);            ButterKnife.bind(this, itemView);        }    }}

 

更多相关文章

  1. Android适配底部虚拟键盘遮挡布局的解决方案
  2. Android参数设置父布局集体宽高
  3. Android 四大组件,五大存储,六大布局
  4. android 布局随笔----用户登录界面
  5. android五种布局模式
  6. Android的布局管理器与java中的实现方式不同
  7. 布局管理器

随机推荐

  1. Android自定义九宫格图案解锁
  2. android输入法全屏问题
  3. Android中自定义DatePicker
  4. Anfdroid网络编程方法
  5. 打开URL启动android默认浏览器,启动指定浏
  6. Android查看包名和获取包名
  7. android中进度条控件
  8. Android学习札记17:ImageView中的setImage
  9. 2011.10.18——— android 自定义Animati
  10. Android中如何自己制作su