如何制作类似于redbus的座位布局?

5

如何在每行的三个元素之后,在网格视图中提供空间?

座位预览

期望的视图如下:

预期座位预览 .

这是我的主活动代码。请检查上面我给出的屏幕,我想要在android中的网格视图中提供空间,如何在每行的三个元素之后给网格视图中提供空间?

    public  void submit() {

        String URLL= "https://api.myjson.com/bins/14h7rp";
        StringRequest stringRequest = new StringRequest(Request.Method.GET, URLL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {


                     try {
                            JSONObject object=new JSONObject(response);
                            String status=object.getString("Status");
                            String Data=object.getJSONObject("Data").getString("Seat_details");
                            JSONArray jsonArray=new JSONArray(Data);
                            for (int i=0;i<jsonArray.length();i++){
                                JSONObject J=jsonArray.getJSONObject(i);
                                String seats=J.getString("seats");
                                JSONArray jsonArray1=new JSONArray(seats);
                                for (int k=0;k<jsonArray1.length();k++){
                                    JSONObject l=jsonArray1.getJSONObject(k);
                                    String id=l.getString("id");
                                    String name=l.getString("name");

                                    String bookedStatus=l.getString("bookedStatus");

                                    m=new Model();
                                    m.setId(id);
                                    m.setName(name);

                                    m.setBookedStatus(bookedStatus);
                                    arrayList.add(m);

                                }

                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                        adapter=new MainActivityAdapter(arrayList,MainActivity.this);
                        recyclerView.setAdapter(adapter);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                }) {
            @Override
    }

}

我下面展示了RecyclerView的初始化:

 private void init_views() {
    recyclerView=(RecyclerView)findViewById(R.id.recyclerview);
    int spacingInPixels = getResources().getDimensionPixelSize(R.dimen.spacing);
    recyclerView.addItemDecoration(new SpacesItemDecoration(spacingInPixels));
    recyclerView.setHasFixedSize(true);
    RecyclerView.LayoutManager layoutManager = new GridLayoutManager(getApplicationContext(),5);
    recyclerView.setLayoutManager(layoutManager);
   /* DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
            layoutManager.getOrientation(layoutManager));
    recyclerView.addItemDecoration(dividerItemDecoration);*/
}

你想要给多少空间?每个行元素后面已经有空间了。 - AwaisMajeed
4
这可能对你有所帮助:https://github.com/TakeoffAndroid/SeatBookingRecyclerView - vm345
1个回答

0

有一种方法可以得到答案,但这不是一个适当的方式。

                      try {
                        JSONObject object=new JSONObject(response);
                        String status=object.getString("Status");
                        String Data=object.getJSONObject("Data").getString("Seat_details");
                      //  System.out.println("_______Data_________" + Data);
                        JSONArray jsonArray=new JSONArray(Data);
                        for (int i=0;i<jsonArray.length();i++){
                            JSONObject J=jsonArray.getJSONObject(i);
                            String seats=J.getString("seats");
                            JSONArray jsonArray1=new JSONArray(seats);

                            for (int k=0;k<jsonArray1.length();k++){
                                if (k%COLUMNS==3) {

                                    m=new Model();
                                    m.setId("");
                                    m.setName("");
                                    m.setSeatKey("");
                                    m.setRowNumber("");
                                    m.setColumnIndex("");
                                    m.setBookedStatus("2");
                                    arrayList.add(m);
                                }  else{
                                    JSONObject l=jsonArray1.getJSONObject(k);
                                    String id=l.getString("id");
                                    String name=l.getString("name");
                                    String seatKey=l.getString("seatKey");
                                    String rowNumber=l.getString("rowNumber");
                                    String columnIndex=l.getString("columnIndex");
                                    String bookedStatus=l.getString("bookedStatus");
                                    System.out.println("______name_________" + name);

                                    m=new Model();
                                    m.setId(id);
                                    m.setName(name);
                                    m.setSeatKey(seatKey);
                                    m.setRowNumber(rowNumber);
                                    m.setColumnIndex(columnIndex);
                                    m.setBookedStatus(bookedStatus);
                                    arrayList.add(m);

                                }


                            }

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

声明列变量

  private static final int COLUMNS = 6;

布局在哪里? - vm345

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接