2016-04-17 8 views
2

私はリストのように動作するrecyclerViewを持っています。アイテムを削除すると、他のアイテムがすべて上がってしまいます。Android:RecyclerViewのアイテムの重力を設定しました

public class AddEventsAdapter extends HFRecyclerViewAdapter<String, AddEventsAdapter.ViewHolder> { 

    public AddEventsAdapter(Context context) { 
     super(context); 
    } 

    @Override 
    public void footerOnVisibleItem() { 

    } 

    @Override 
    public void addData(int position, String item) { 
     super.addData(position, item); 
    } 

    @Override 
    public ViewHolder onCreateDataItemViewHolder(ViewGroup parent, int viewType) { 
     View v = LayoutInflater.from(parent.getContext()) 
       .inflate(R.layout.data_item, parent, false); 
     return new ViewHolder(v); 
    } 

    @Override 
    public void onBindDataItemViewHolder(ViewHolder holder, int position) { 
     holder.itemTv.setText(getData().get(position)); 
    } 

    class ViewHolder extends RecyclerView.ViewHolder{ 
     TextView itemTv; 
     LinearLayout theLayout; 
     public ViewHolder(View itemView) { 
      super(itemView); 
      itemTv = (TextView)itemView.findViewById(R.id.itemTv); 
      theLayout = (LinearLayout)itemView.findViewById(R.id.layout2); 
      theLayout.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        removeData(getAdapterPosition()); 
       } 
      }); 
     } 
    } 
} 

実装:

私は下の位置0

マイアダプタ(カスタム)をアイテムに重力を設定する、またはアダプタの位置を反転、作ることを考えています

AddEventsAdapter myAdapter = new AddEventsAdapter(this); assert layout != null; layout.setAdapter(myAdapter); layout.setLayoutManager(new LinearLayoutManager(this)); View footerView = LayoutInflater.from(this).inflate(R.layout.footer, layout, false); myAdapter.setFooterView(footerView); ArrayList<String> data = new ArrayList<>(); for (int i=0; i<8; i++){ data.add(String.format("Item %d", i)); } myAdapter.setData(data); 

答えて

3

この行をLayoutManagerに追加して解決しました。.setReverseLayout(true);

関連する問題