如何制作像redbus一样的座位布局?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何制作像redbus一样的座位布局?相关的知识,希望对你有一定的参考价值。

如何在每行3个元素后的网格视图中给出空间?

预期观点如下:

.

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

    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
    }

}

我的Recylerview初始化如下

 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);*/
}
答案

你得到答案的方式之一,但它不是一个正确的方法

                      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();
                    }

声明COLUMN变量

  private static final int COLUMNS = 6;

以上是关于如何制作像redbus一样的座位布局?的主要内容,如果未能解决你的问题,请参考以下文章

像导航抽屉一样切换片段(带后退箭头)

我正在尝试为一个项目制作座位预订系统。此代码无法显示哪些座位已被占用

如何在android tv中使用像netflix这样的浏览片段制作侧边菜单?

如何在将 UIView 制作成图像之前正确布局

如何以编程方式完全像这个一样布局 UIButton?

android:如何像 android market 一样让标签页翻转?