Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android recyclerview 为RecyclerView项添加底部菜单_Android Recyclerview_Xamarin.android_Android Viewholder_Navigationview - Fatal编程技术网

Android recyclerview 为RecyclerView项添加底部菜单

Android recyclerview 为RecyclerView项添加底部菜单,android-recyclerview,xamarin.android,android-viewholder,navigationview,Android Recyclerview,Xamarin.android,Android Viewholder,Navigationview,我有一个recyclerview,在右边有一个选项按钮,我想实现如下动画: 我正在使用作为我的参考,但我有一些断开连接 首先,我想知道我是否能做到这一点,因为我在向recyclerview添加菜单时发现的每一件事都是添加一个基本菜单弹出窗口,这不是我想要的 我在从viewholder访问菜单时也有一些断开连接,我可以从片段访问它,但我想我需要从viewholder调用它,以便单击哪一行来启动菜单 如果我想得太多了,有一种更简单的方法,我愿意听你说。我不确定我是否理解你想要什么,但如果是要在re

我有一个recyclerview,在右边有一个选项按钮,我想实现如下动画:

我正在使用作为我的参考,但我有一些断开连接

首先,我想知道我是否能做到这一点,因为我在向recyclerview添加菜单时发现的每一件事都是添加一个基本菜单弹出窗口,这不是我想要的

我在从viewholder访问菜单时也有一些断开连接,我可以从片段访问它,但我想我需要从viewholder调用它,以便单击哪一行来启动菜单


如果我想得太多了,有一种更简单的方法,我愿意听你说。

我不确定我是否理解你想要什么,但如果是要在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;
        }
}