我有一个像列表一样的recyclerVIEw,当我删除一个项目时,所有其他项目都向上移动,我希望它们向下移动.我正在考虑将重力设置为项目,或反转适配器中的位置,使底部位置为0.
我的适配器(自定义):
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()); } }); } }}
实现方式:
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);
解决方法:
通过将此行添加到LayoutManager来解决:.setReverseLayout(true);
总结以上是内存溢出为你收集整理的Java-Android:设置RecyclerView项的重力全部内容,希望文章能够帮你解决Java-Android:设置RecyclerView项的重力所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)