我有一个recyclelerview,右边有一个选项按钮,我希望实现类似下面的动画:
我使用this作为我的参考,但我有一些断开连接。
首先,我想知道我是否能做到这一点,因为我在向Recyclerview添加菜单时发现的每一件事都是添加一个弹出的基本菜单,这不是我想要的。
从查看器访问菜单时我也有一些脱节,我可以从我的片段访问它,但我想我需要从viewholder调用它,所以我点击了哪一行来启动菜单。
如果我过分思考实施并且有一个更简单的方法,我愿意听到它。
我不确定我是否理解你想要的东西,但是如果要点击再生器视图的行项目中的按钮,只要点击按钮就会从屏幕底部弹出抽屉,那么你应该只使用一个正常的抽屉设置(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;
}
}
其中qazxsw poi是持有人/行中的按钮。注意我没有对此进行测试,因此可能会有一些遗忘。