GridLayoutManager
一、 引入问题
要实现这个布局,我们需要怎么做呢?
- 用线性布局画各种长度尺寸的button?
可行,但扩展性不够,假如将第二行和第三行互换位置呢 再增加几行呢 再增加几种类型的item呢? - 我们可以试下recyclerview的网格布局,进行动态适配各行的item
可行,扩展性够
二、解决问题
方案:使用recyclerview的网格布局
- 定义itemType,针对不同的类型填充不同的布局
这里我们用不同itemType,之后可以在任意位置扩展这些类型的item
- 核心代码
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private RecyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = findViewById(R.id.recycler_view);
init();
}
public void init() {
GridLayoutManager gridLayoutManager = new GridLayoutManager(getApplicationContext(), 3);
mRecyclerView.setLayoutManager(gridLayoutManager);
mAdapter = new RecyAdapter();
mRecyclerView.setAdapter(mAdapter);
gridLayoutManage