您当前的位置: 首页 >  ui

命运之手

暂无认证

  • 3浏览

    0关注

    747博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【高级UI】【030】自定义LayoutManager

命运之手 发布时间:2022-04-06 12:59:39 ,浏览量:3

前言

RecyclerView的核心功能,并不是由自己来完成的,而是转交给LayoutManager来完成的

LayoutManager负责的功能有:布局管理,滑动管理,缓存管理

自定义流式布局管理器 - FlowLayoutManager

这里,我们自定义了一个流式布局管理器,来演示LayoutManager是如何工作的

代码比较简单,对标准流程做了简化了,主要是为了演示,在性能和和细节上并不够好


	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.recyclerview);
	        FlowLayoutManager layoutManager = new FlowLayoutManager();
	        recyclerView.setLayoutManager(layoutManager);
	        Adapter adapter = new Adapter();
	        recyclerView.setAdapter(adapter);
	    }
	}


	public class Adapter extends RecyclerView.Adapter {
	
	    String[] datas = new String[300];
	
	    public Adapter() {
	        initData();
	    }
	
	    @Override
	    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
	        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view_pager, parent, false);
	        return new ViewHolder(view);
	    }
	
	    @Override
	    public void onBindViewHolder(ViewHolder holder, int position) {
	        holder.btn.setText(datas[position]);
	    }
	
	    @Override
	    public int getItemCount() {
	        return datas.length;
	    }
	
	    public class ViewHolder extends RecyclerView.ViewHolder {
	
	        Button btn;
	
	        public ViewHolder(View itemView) {
	            super(itemView);
	            btn = itemView.findViewById(R.id.btn);
	        }
	    }
	
	    protected void initData() {
	        String[] randoms = new String[]{"X", "XXXXXX", "XXXXXXXXXXXXX", "XXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXXXX", "XXX", "XXXXXXXXXXXXX"};
	        for (int i = 0; i             
关注
打赏
1654938663
查看更多评论
0.0414s