Aut*_*Cat 1 android android-recyclerview
我正在recyclerview使用不同的元素定位(横向的网格和纵向的列表)和不同.xml的项目结构。
对于第一部分,我在简单的方向检查onCreateView()方法中看到了解决方案:
switch (getResources().getConfiguration().orientation) {
case 1:
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
break;
case 2:
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(),2));
break;
}
Run Code Online (Sandbox Code Playgroud)
但对于第二部分,我有疑问。最简单的方法是将 LayoutManager 作为构造函数参数传递给 Adapter 并onCreateViewHolder()使用instanceof运算符检查布局。但它看起来不是很好或正确的解决方案。
那么,对于这种情况,有什么共同的模式或更好的方法吗?
要根据屏幕方向提供不同的布局资源文件,您可以创建名为 layout-land(横向)和 layout-port(纵向)的资源文件夹,系统会自动处理其余部分。提示:您不需要两个文件夹。如果您的默认方向是纵向,那么只需为横向模式创建 layout-land 文件夹。布局资源文件必须具有相同的名称!