2016-04-17 44 views
3

我設置了一個RecyclerView,其行爲與列表類似,我想要一個列表底部的按鈕,點擊時添加更多視圖,我在想更容易的方法是讓將位置0作爲底部的第一個位置,並將位置增加到頂部,以便在單擊位置0中的視圖時添加視圖。 如果有更好的辦法解決這個問題,請分享。Android:invert RecyclerView職位

這裏是我的適配器:

public class AddEventsAdapter extends RecyclerView.Adapter<AddEventsAdapter.ViewHolder> { 

    public List<String> items = new ArrayList<>(); 



    public void addItem(String name) { 
     notifyItemInserted(items.size() - 1); 
     items.add(name); 

    } 

    public void removeItem(int position) { 
     items.remove(position); 
     notifyItemRemoved(position); 
     notifyItemRangeChanged(position, items.size()); 
    } 

    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 
     View view = inflater.inflate(R.layout.add_event_item, parent, false); 

     return new ViewHolder(view); 
    } 

    @Override 
    public int getItemCount() { 
     return items.size(); 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     holder.setData(position); 
     holder.eventName.setText(i + ""); 
     if(position == 0) 
     { 
      holder.theLayout.setBackgroundColor(Color.parseColor("#7F9099")); 
      holder.eventName.setText("Add"); 
     } 

    } 


    static int i; 
    class ViewHolder extends RecyclerView.ViewHolder{ 

     public TextView eventName; 
     public RelativeLayout theLayout; 

     public ViewHolder(final View itemView) { 
      super(itemView); 
      eventName = (TextView)itemView.findViewById(R.id.eventName); 
      theLayout = (RelativeLayout)itemView.findViewById(R.id.backgroundevent); 

      theLayout.setId(++i); 


     } 

     public void setData(final int position) { 
      theLayout.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if (position == items.size() - 1) { 
         addItem(""); 
        } else { 
         removeItem(position); 
        } 
       } 
      }); 
     } 


    } 


} 

您可能會注意到一些錯誤,我已經在它的最後10個小時,我有一個邏輯擊穿

+1

解決爲什麼不把RecyclerView外的按鈕添加的意見,高於或低於它,所以它總是可見,無論滾動的? – Francesc

+0

我嘗試過,但滾動時看起來很奇怪 –

回答

5

它是由addind此行給LayoutManager .setReverseLayout(true);

+0

好的解決方案, 我喜歡 !!! –

+0

作品像一個魅力,謝謝 –

1

你可以在列表的末尾添加頁腳視圖,並在裏面添加按鈕。這是在回收站視圖https://github.com/u3breeze/android-RecyclerView-WithHeaderAndFooter中創建頁腳的鏈接。您可以以正常方式

+0

好吧我想使用它,但它不能正常工作,您使用過嗎? –

+0

如果您需要頁腳或頁眉,則不需要任何庫。只需更新您的適配器以返回count + 1(對於頁腳/頁眉),然後在onCreateViewHolder和onBindViewHolder函數中,只需檢查位置,如果它是0(用於頁眉)或count(用於頁腳)顯示按鈕。 – Francesc

+0

與此同時,我給圖書館一個嘗試,它完美的工作,一個問題仍然存在,當一個視圖被刪除所有的意見上升,我需要設置視圖的重力到底,或反轉適配器位置的計數 –