我目前正在开发使用卡片的应用。我在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

07-24 09:49
查看更多