Sergei Buvaka Asked:2020-06-18 23:16:54 +0800 CST2020-06-18 23:16:54 +0800 CST 2020-06-18 23:16:54 +0800 CST RecyclerView 卡片大小 3/4 屏幕 772 是RecyclerView其中有一个垂直的卡片列表。问题是,是否有可能以某种方式将它们的大小设置为屏幕高度的 3/4(75%)? 如果您将尺寸设置为它们,dp那么屏幕将不会自适应,在一部手机上它将占据整个屏幕,而在另一半。我知道您可以编写自己的 LayoutManager,但这不是一项简单的任务,但我想要一种正常的解决方案,同时不要编写代码的画布。 如果有人对如何做到这一点有任何想法,我很乐意。 升级版: 按照惯例,我们所有的卡片都应该占据这个屏幕尺寸。在底部,下一张卡片应该向外窥视。 android 1 个回答 Voted Best Answer Sergei Buvaka 2020-06-20T22:18:25+08:002020-06-20T22:18:25+08:00 总的来说,通过重新定义的解决方案LayoutManager非常简单。您只需要覆盖该方法checkLayoutParams()并设置我们的ViewHolder-a. recyclerView.layoutManager = object : LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) { override fun checkLayoutParams(params: RecyclerView.LayoutParams?): Boolean { val displayMetrics = DisplayMetrics() val windowManager = requireContext().getSystemService(Context.WINDOW_SERVICE) as WindowManager windowManager.defaultDisplay.getMetrics(displayMetrics) val height = displayMetrics.heightPixels params?.width = width * 0.75 return true } } 感谢@Andrew 提供链接。
总的来说,通过重新定义的解决方案
LayoutManager
非常简单。您只需要覆盖该方法checkLayoutParams()
并设置我们的ViewHolder-a
.感谢@Andrew 提供链接。