[Android] 使用FirebaseRecyclerAdapter排序項目的位置


Answers

Question

在我的應用程序中,用戶可以使用一個特殊的標準,即orderByChild輕鬆地對內容進行排序。

如果他們在瑞士尋找物理文件

    .orderByChild("Tag_country").equalTo("Physics_Switzerland");

如果他們在瑞士尋找任何文件

    .orderByChild("Country").equalTo("Switzerland");

用戶可以根據他們的發布日期,瀏覽次數或者喜歡單個帖子的大腦數量對內容進行排序。

.orderByChild("Views") //  sort list by highest views
.orderByChild("Brains") //  sort list by most likes\brains 
.orderByChild("TimeStamp") //  sort list by newest post\edit

但是,大家都知道,用戶不可能不止一次對內容進行排序

一次只能使用一個訂單方式。 在同一個查詢中多次調用排序方法會引發錯誤。

所以像OrderByChild("Tag_country).equal("Physics_Switzerland").OrderByChild("Views");

實際上會崩潰你的應用程序

我一直在嘗試根據查看文檔的次數對已經指定的查詢進行排序。 也就是從大到小的順序,在瑞士向我展示從最高層到最低層的物理文件

如何調整FirebaseRecycler

 final Query DBquery = FirebaseDatabase.getInstance().getReference().child("PDF").child("Content")
                .orderByChild("tag_Country").equalTo("Chemistry_Switzerland");

        FirebaseRecyclerAdapter<pdfGstrings, Pdf_BlogViewHolder> fbRecyclerAdapter;
        fbRecyclerAdapter = new FirebaseRecyclerAdapter<pdfGstrings,  Pdf_BlogViewHolder>(
                pdfGstrings.class,
                R.layout.pdf_g_card,
                Pdf_BlogViewHolder.class,
                DBquery
        ) {

        PdfRecycler.setAdapter(fbRecyclerAdapter);
        fbRecyclerAdapter.notifyDataSetChanged();

視圖如何被填充

 @Override
            protected void populateViewHolder(final Pdf_BlogViewHolder viewHolder, final pdfGstrings model, final int position) {
                final String post_key = getRef(position).getKey();
                Render(viewHolder, model, post_key);
            }
        };

我可以通過訪問每個Pdf Views數量

viewHolder.ViewCounts

查詢

如何操作\重新排序項目位置, 客戶端 ,並基於一個整數值? 這裡是viewHolder.ViewCounts的整數值

示例:以編程方式將單元格與92個視圖上的單元格頂部的325個視圖對齊。

兒童結構

Pdf
   Content
      -Kd5YcEuE1yKTSdpaZi7    
          "Brains" : 2,
          "Country" : "Switzerland",
          "Tag_country" : "Chemistry_Switzerland",
          "TimeStamp" : 12849127519,
          "Views" : 92,

      -Kd5YcoijSDujaxpaZsE    
          "Brains" : 12,
          "Country" : "Switzerland",
          "Tag_country" : "Chemistry_Switzerland",
          "TimeStamp" 14349127519
          "Views" : 352,

     -Kd5YHDIUscDujaxpaZ13   
          "Brains" : 1, 
          "Country" : "Malaysia",
          "Tag_country" : "Mathematics_Malaysia",
          "TimeStamp" 14341221519
          "Views" : 218,
     -Kd5YHDIUJAdhxaxpas93    
          "Brains" 91,
          "Country" : "Argentine",
          "Tag_country" : "Archaeology_Argentine",
          "TimeStamp": 14949127519,
          "Views" : 928,