Android recyclerview 为RecyclerView项添加底部菜单
我有一个recyclerview,在右边有一个选项按钮,我想实现如下动画: 我正在使用作为我的参考,但我有一些断开连接 首先,我想知道我是否能做到这一点,因为我在向recyclerview添加菜单时发现的每一件事都是添加一个基本菜单弹出窗口,这不是我想要的 我在从viewholder访问菜单时也有一些断开连接,我可以从片段访问它,但我想我需要从viewholder调用它,以便单击哪一行来启动菜单Android recyclerview 为RecyclerView项添加底部菜单,android-recyclerview,xamarin.android,android-viewholder,navigationview,Android Recyclerview,Xamarin.android,Android Viewholder,Navigationview,我有一个recyclerview,在右边有一个选项按钮,我想实现如下动画: 我正在使用作为我的参考,但我有一些断开连接 首先,我想知道我是否能做到这一点,因为我在向recyclerview添加菜单时发现的每一件事都是添加一个基本菜单弹出窗口,这不是我想要的 我在从viewholder访问菜单时也有一些断开连接,我可以从片段访问它,但我想我需要从viewholder调用它,以便单击哪一行来启动菜单 如果我想得太多了,有一种更简单的方法,我愿意听你说。我不确定我是否理解你想要什么,但如果是要在re
如果我想得太多了,有一种更简单的方法,我愿意听你说。我不确定我是否理解你想要什么,但如果是要在recyclerview的行项目中有一个按钮,每当点击按钮时,就会从屏幕底部弹出一个抽屉,然后,您应该为活动使用一个正常的抽屉设置(,),并在行按钮中添加一个
OnClickListener
(可以在onCreateViewHolder()
或holder的构造函数中完成),通过调用openDrawer()
触发抽屉打开。注意:要执行后者,您必须通过适配器构造函数将导航抽屉(DrawerLayout
)传递到适配器中(这意味着您的适配器需要一些东西来存储DrawerLayout
)
所以
公共类CustomAdapter扩展了RecyclerView.Adapter{
私有上下文;
私有int mLayoutResourceId;
私有ArrayList项;
私人抽屉;
公共CustomAdapter(上下文上下文、int资源、ArrayList itemArray、抽屉布局抽屉){
this.mContext=上下文;
this.mLayoutResourceId=资源;
this.items=itemArray;
这个抽屉=抽屉;
}
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
View=LayoutFlater.from(mContext).充气(mLayoutResourceId,父项,false);
最终CustomViewHolder=新CustomViewHolder(视图);
holder.mbutton.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图){
//检查抽屉是否为空,如果不是,则调用
drawer.drawerropen();
}
});
报税表持有人;
}
}
其中,mButton
是支架/行中的按钮。注意,我还没有测试过这个,所以可能有些东西我忘记了
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;
}
}