在android中的recyclerView中显示弹出按钮的确切位置

问题描述:

我正在使用Android中的recyclerView在gridLayout上工作.每个网格项都有一个选项,我想在其中显示另一个类的弹出活动.请看图片-

I'm working on a gridLayout with recyclerView in android.I've a an option with each grid Item where I want to show my popup activity which is another class. Please see the image -

每个项目都有一个菜单选项.而我的弹出活动Java名称是 CustomPop.Class .我使用一个recyclerView来显示gridViews,它的holder方法就像

There is a menu option with each Item. and my popup activity java name is CustomPop.Class. I use a recyclerView for showing gridViews and its holder method is like

    public void onBindViewHolder(ViewHolder holder, int position) {
    holder.img_chatroom_menu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent = new Intent(view.getContext(), ChatroomPopup.class);
            view.getContext().startActivity(intent);

        }
    });
}

通过这个,我可以显示弹出活动.但是问题是它出现在活动中间,但是我希望它在菜单选项旁边打开.

By this I can show the popup activity. But the problem is It's appear in the middle of the activity but I want it to open beside the menu option.

弹出菜单

as per my above comment you can use Popup Menu

Android弹出菜单在锚文本下方显示菜单(如果空格可用,否则在锚文本上方).如果您在弹出菜单之外单击,它将消失.

Android Popup Menu displays the menu below the anchor text if space is available otherwise above the anchor text. It disappears if you click outside the popup menu.

尝试创建菜单文件

文件:poupup_menu.xml

file: poupup_menu.xml

<menu xmlns:androclass="http://schemas.android.com/apk/res/android" >  

    <item  
        android:id="@+id/one"  
        android:title="One"/>  

    <item  
        android:id="@+id/two"  
        android:title="Two"/>  

    <item  
        android:id="@+id/three"  
        android:title="Three"/>  

</menu>  

比使用像这样的创建弹出菜单

than use create popup menu like this

holder.img_chatroom_menu.setOnClickListener(new OnClickListener() {  

           @Override  
           public void onClick(View v) {  
            //Creating the instance of PopupMenu  
            PopupMenu popup = new PopupMenu(MainActivity.this, button1);  
            //Inflating the Popup using xml file  
            popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());  

            //registering popup with OnMenuItemClickListener  
            popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {  
             public boolean onMenuItemClick(MenuItem item) {  
              Toast.makeText(MainActivity.this,"You Clicked : " + item.getTitle(),Toast.LENGTH_SHORT).show();  
              return true;  
             }  
            });  

            popup.show();//showing popup menu  
           }  
          });//closing the setOnClickListener method  

这是示例演示链接

here is the sample demo links how to create pop-up menu in android