添加RecyclerView项目的底部菜单

问题描述 投票:1回答:1

我有一个recyclelerview,右边有一个选项按钮,我希望实现类似下面的动画:

desired result

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

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

从查看器访问菜单时我也有一些脱节,我可以从我的片段访问它,但我想我需要从viewholder调用它,所以我点击了哪一行来启动菜单。

如果我过分思考实施并且有一个更简单的方法,我愿意听到它。

android-recyclerview xamarin.android android-viewholder navigationview
1个回答
1
投票

我不确定我是否理解你想要的东西,但是如果要点击再生器视图的行项目中的按钮,只要点击按钮就会从屏幕底部弹出抽屉,那么你应该只使用一个正常的抽屉设置(Navigation DrawerCreate 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是持有人/行中的按钮。注意我没有对此进行测试,因此可能会有一些遗忘。

© www.soinside.com 2019 - 2024. All rights reserved.