Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GridLayoutManager视图保持器重力_Android_Android Layout_Android Recyclerview_Gridlayoutmanager - Fatal编程技术网

Android GridLayoutManager视图保持器重力

Android GridLayoutManager视图保持器重力,android,android-layout,android-recyclerview,gridlayoutmanager,Android,Android Layout,Android Recyclerview,Gridlayoutmanager,我有一个带有GridLayoutManager的RecyclerView,其spanCount为2。ViewHolder用于带有ImageView和TextView的垂直线性布局。LinearLayout具有设置大小,例如100dp x 100dp。当我在横向模式下查看活动时,我希望网格中的每个单元格都在其范围内居中。但相反,每一个都是左对齐的。同样,因为我的跨度为2,每个视图的跨度为1,所以每行有两个视图。我希望每一行在其跨度内居中,而不是左对齐。如何做到这一点?您可以创建一个适合网格布局的新

我有一个带有GridLayoutManager的RecyclerView,其spanCount为2。ViewHolder用于带有ImageView和TextView的垂直线性布局。LinearLayout具有设置大小,例如100dp x 100dp。当我在横向模式下查看活动时,我希望网格中的每个单元格都在其范围内居中。但相反,每一个都是左对齐的。同样,因为我的跨度为2,每个视图的跨度为1,所以每行有两个视图。我希望每一行在其跨度内居中,而不是左对齐。如何做到这一点?

您可以创建一个适合网格布局的新grid\u item.xml,并在其中相应地重新排列所有视图。 您可以在适配器类中定义一个布尔变量,根据该变量,您将决定在onCreateViewHolder中膨胀哪个列表/网格项

     public DataHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                if (isGrid){
                   View view = inflater.inflate(R.layout.grid_item , parent ,false);
                }else{
                   View view = inflater.inflate(R.layout.list_item , parent ,false);
                }
                return new DataHolder(view);
   }

祝你好运

你找到解决办法了吗?