我有一个带有卡片列表的 RecyclerView。我想知道是否可以通过编程将 RecyclerView 的 LayoutManager 更改为 Linear(在使用手机时)和 StaggeredGrid(在使用平板电脑时)。 我最初的想法是在 Activity 上使用相同的代码,只更改 layout.xml,但考虑到 Android 使用不同的 LayoutManager,这似乎并不复杂。 我也尝试过使用 Cardslib 库,但是 reeeaall 被文档弄糊涂了,因为没有自定义卡片的完整示例。 有什么想法吗?
最佳答案
是的,这是可能的。一种解决方案是在您的值文件夹中定义一个 bool 资源。例如,您可以定义:
<bool name="is_phone">true</bool>
在您的 values 文件夹以及您的 values-sw720dp 和 values-sw600dp 中添加相同的资源并设置为 false。
<bool name="is_phone">false</bool>
然后,在您的 Activity 的 onCreate()
中,您可以这样做:
boolean isPhone = getResources().getBoolean(R.bool.is_phone);
if (isPhone) {
// Set linearlayoutmanager for your recyclerview.
} else {
// Set staggeredgridlayoutmanager for your recyclerview.
}
关于android - 根据设备格式更改 LayoutManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35237549/