首页 > 解决方案 > 弹出菜单被剪裁且不完全可见

问题描述

我想显示一个固定在屏幕底部的弹出菜单,但它总是显示一个固定在屏幕右下角的弹出菜单。

有时,这会使弹出菜单在屏幕上显示时被剪裁。这是一个例子。

这是布局文件中的锚(item_menu):

<LinearLayout
   android:id="@+id/item_menu"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:visibility="visible">

   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:translationX="4dp"
      android:src="@drawable/ic_more_vert_black_18dp" />
</LinearLayout>

这是我设置 PopupMenu 并显示它的代码:

public ItemViewHolder(View itemView) {
   super(itemView);
   itemView.findViewById(R.id.item_menu).setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(final View view) {
         PopupMenu popupMenu = new PopupMenu(view.getContext(), view);
         popupMenu.getMenuInflater().inflate(R.menu.hot_item, popupMenu.getMenu());
         popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
               Toast.makeText(view.getContext(), "menu clicked " + menuItem.getItemId(), Toast.LENGTH_LONG).show();
               return true;
            }
         });
         popupMenu.show();
      }
   });
}

标签: androidanchorandroid-inflatepopupmenu

解决方案


推荐阅读