如何创建此类菜单并调用 android 中的悬停操作?
how can I create this type of menu and call on Hover action in android?
enter image description here
我想创建这样的自定义菜单。谁能帮帮我???
这是我的 java 端实现。 ivPricePopupMenu 是 ImageView 对象, productlist_popup_menu 是我想在 onMouseHover 操作上显示的布局。提出一些解决方案。
ivPricePopupMenu.setOnHoverListener(new View.OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
Log.d("hover", "Bring yor cursor over the button");
if(event.getAction()==MotionEvent.ACTION_HOVER_ENTER)
{
//instantiate the popup.xml layout file
LayoutInflater layoutInflater = (LayoutInflater) ProductListActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View customView = layoutInflater.inflate(R.layout.productlist_popup_menu,null);
//instantiate popup window
PopupWindow popupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//display the popup window
popupWindow.showAtLocation(linearLayout, Gravity.CENTER,0, 0);
}
return false;
}
});
可以使用 PopupWindow
小部件实现悬停菜单或工具提示类型的视图。
PopupWindow(context)
为 PopupWindow 创建所需的 XML 布局文件。使用 LayoutInflater
扩充布局并为其设置所需的数据。
根据锚视图在屏幕上的位置(即问题图像中的信息按钮视图)计算 x 和 y 坐标,以定位弹出窗口 window。
使用 showAtLocation
方法显示弹出窗口 window。
popUpWindow.showAtLocation(anchorView, gravity, x, y)
重力可以通过正确计算x和y坐标设置为Gravity.NO_GRAVITY
。
我得到了解决方案!!!为 popupWindow 创建单独的布局文件,然后使用 onClickListner 事件调用它 window。在按钮或图像的 onClick 事件中创建此方法。
private void initiatePopupWindow() {
//实例化popup.xml布局文件
LayoutInflater layoutInflater = (LayoutInflater) ProductListActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
查看 customView = layoutInflater.inflate(R.layout.productlist_popup_menu,null);
//instantiate popup window
final PopupWindow popupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setFocusable(true);
popupWindow.setTouchable(true);
popupWindow.setBackgroundDrawable(new ColorDrawable());
popupWindow.setOutsideTouchable(true);
//display the popup window
popupWindow.showAtLocation(buttonTestingLayout, Gravity.CENTER, 0, 0);
}
enter image description here
我想创建这样的自定义菜单。谁能帮帮我???
这是我的 java 端实现。 ivPricePopupMenu 是 ImageView 对象, productlist_popup_menu 是我想在 onMouseHover 操作上显示的布局。提出一些解决方案。
ivPricePopupMenu.setOnHoverListener(new View.OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
Log.d("hover", "Bring yor cursor over the button");
if(event.getAction()==MotionEvent.ACTION_HOVER_ENTER)
{
//instantiate the popup.xml layout file
LayoutInflater layoutInflater = (LayoutInflater) ProductListActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View customView = layoutInflater.inflate(R.layout.productlist_popup_menu,null);
//instantiate popup window
PopupWindow popupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//display the popup window
popupWindow.showAtLocation(linearLayout, Gravity.CENTER,0, 0);
}
return false;
}
});
可以使用 PopupWindow
小部件实现悬停菜单或工具提示类型的视图。
PopupWindow(context)
为 PopupWindow 创建所需的 XML 布局文件。使用 LayoutInflater
扩充布局并为其设置所需的数据。
根据锚视图在屏幕上的位置(即问题图像中的信息按钮视图)计算 x 和 y 坐标,以定位弹出窗口 window。
使用 showAtLocation
方法显示弹出窗口 window。
popUpWindow.showAtLocation(anchorView, gravity, x, y)
重力可以通过正确计算x和y坐标设置为Gravity.NO_GRAVITY
。
我得到了解决方案!!!为 popupWindow 创建单独的布局文件,然后使用 onClickListner 事件调用它 window。在按钮或图像的 onClick 事件中创建此方法。
private void initiatePopupWindow() { //实例化popup.xml布局文件 LayoutInflater layoutInflater = (LayoutInflater) ProductListActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 查看 customView = layoutInflater.inflate(R.layout.productlist_popup_menu,null);
//instantiate popup window
final PopupWindow popupWindow = new PopupWindow(customView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setFocusable(true);
popupWindow.setTouchable(true);
popupWindow.setBackgroundDrawable(new ColorDrawable());
popupWindow.setOutsideTouchable(true);
//display the popup window
popupWindow.showAtLocation(buttonTestingLayout, Gravity.CENTER, 0, 0);
}