• 设置布局管理者添加给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用户定位Google Map显示地图
  2. android cupcake源码编译问题
  3. Android(安卓)布局学习
  4. Android(安卓)- 禁止Gridview滚动
  5. Android全屏和强制横屏竖屏设置
  6. android RadioGroup设置某一个被选中
  7. android时间控件DatePicker使用实例
  8. android 实现圆形进度条
  9. Android(安卓)运行时权限

随机推荐

  1. Android界面布局的几种常用方式
  2. Android之View篇2————View的事件分发
  3. 深入Android【八】 —— Activity间数据
  4. Android中MQTT的使用
  5. Failed to load libGL.so error libGL.so
  6. Android P 调用隐藏API限制原理
  7. Android之高仿手机QQ聊天
  8. 避免Android中Context引起的内存泄露
  9. Android 7.0 Nougat不得不知的11项新功能
  10. Android获取系统的硬件信息、系统版本以