我目前正在开发使用卡片的应用。我在Google的官方应用中看到了卡片的用法。
但是,Google应用在手机和平板电脑上有所不同。
在手机上,它显示卡片下方-彼此相邻,彼此之间没有太多空间。 (它也可以在手机上以横向模式执行此操作)
在平板电脑上,它将两张卡片彼此相邻放置。 (有时一个大和两个小,有时两个大小相等)
有人可以在这里向我解释他们如何做到这一点,以及我需要添加哪种XML或Java才能在我的应用程序中添加类似的功能。 (我目前在我的应用中有工作卡,但它们的宽度设置为fill_parent,因此它们会填满整个屏幕)
提前非常感谢您:)
最佳答案
他们使用RecyclerView
和不同的LayoutManager
来实现。
代码示例如下:
// during onCreate
RecyclerView rv = (RecyclerView)findViewById(R.id.recycler);
LayoutManager lm;
if(isPhone) {
if(isLandscape) {
lm = new GridLayoutManager(this, 2);
} else {
lm = new LinearLayoutManager(this);
}
} else {
if(isLandscape) {
lm = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
} else {
lm = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
}
}
rv.setLayoutManager(lm);
rv.setAdapter(... your adapter with the cards...);
要在项目之间获得不同的间距,可以使用
RecyclerView.ItemDecoration
。如果您需要页眉,页脚或其他实用程序,建议您检查我的库RecyclerViewTools on GitHub