我有一个recyclerview,它将在右侧具有一个选项按钮,我想实现以下动画:
我使用this作为参考,但是有些断开。
首先,我想知道是否可以执行此操作,因为在将菜单添加到recyclerview时发现的每件事都是在添加弹出的基本菜单,这不是我想要的。
从查看器访问菜单时,我也有些脱节,我可以从片段中访问它,但是我认为我需要从查看器中调用它,所以我单击了哪一行来启动菜单。
如果我过分考虑实现方式,并且有一种更简单的方法,那么我很乐意听。
答案 0 :(得分:1)
不确定我是否了解您要的内容,但是如果要在recyclerview的行项中存在一个按钮,则只要单击该按钮,它就会从屏幕底部弹出一个抽屉,那么您应该仅对活动使用常规抽屉设置(Navigation Drawer,Create a navigation drawer),并将OnClickListener
添加到行按钮(可以在onCreateViewHolder()
或持有者的构造函数),该构造函数通过调用openDrawer()
触发抽屉打开。请注意,要做到后者,您必须通过适配器构造函数将导航抽屉(DrawerLayout
)传递到适配器中(这意味着您的适配器需要存储DrawerLayout
的东西)。
所以
public class CustomAdaptor extends RecyclerView.Adapter<CustomViewHolder>{
private Context mContext;
private int mLayoutResourceId;
private ArrayList<Item> items;
private DrawerLayout drawer;
public CustomAdaptor (Context context, int resource, ArrayList<Item> itemArray, DrawerLayout drawer) {
this.mContext = context;
this.mLayoutResourceId = resource;
this.items = itemArray;
this.drawer = drawer;
}
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(mLayoutResourceId, parent, false);
final CustomViewHolder holder = new CustomViewHolder(view);
holder.mbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//Check if drawer is null and if not then call
drawer.drawerOpen();
}
});
return holder;
}
}
其中mButton
是固定器/行中的按钮。请注意,我尚未对此进行测试,因此可能有些东西我会忘记了。