首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何创建像PopupWindow showAsDropDown这样的动画?

如何创建像PopupWindow showAsDropDown这样的动画?
EN

Stack Overflow用户
提问于 2015-08-07 03:55:43
回答 1查看 600关注 0票数 0

有没有办法实现弹出窗口的showAsDropDown函数动画?例如,使用此下拉动画显示对话框的方法?

我不能使用PopupWindow,因为当我通过EditText.setError();设置错误时,应用程序崩溃-这是一个已知的问题,它仍然没有得到修复。

证据:Exception when try to setError() in an editText inside a Popup Window看看Kantesh的最后一条评论。

EN

回答 1

Stack Overflow用户

发布于 2015-08-07 04:13:30

您可以改用PopUp菜单,其实现方式如下:

代码语言:javascript
代码运行次数:0
运行
复制
public void showPopUp(final View view) {


    PopupMenu popup = new PopupMenu(this, view);
    MenuInflater inflater = popup.getMenuInflater();

    //Note that R.menu.option is a menu in the menu.xml
    inflater.inflate(R.menu.options, popup.getMenu());

    /* Force icons to show if you want to display icons
    Object menuHelper = null;
    Class[] argTypes;
    try {
        Field fMenuHelper = PopupMenu.class.getDeclaredField("mPopup");
        fMenuHelper.setAccessible(true);
        menuHelper = fMenuHelper.get(popup);
        argTypes = new Class[] { boolean.class };
        menuHelper.getClass().getDeclaredMethod("setForceShowIcon", argTypes).invoke(menuHelper, true);
    } catch (Exception e) {
        popup.show();
        return;
    }
    */
    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.item1:
                    // do thing when item1 clicked
                    break;

                case R.id.item2:

                    // do thing when item2 licked                        break;

                default:
                    return false;
            }
            return false;
        }
    });

    popup.show();


} 

在Xml上,您必须添加新菜单,如下所示:

在菜单文件夹中,添加新的Xml,将其命名为任意名称,然后在其中添加您希望它们出现的选项,例如,我的是options.xml:

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/item1"
    android:showAsAction="ifRoom|withText"
    android:title="item1"
    android:visible="true"/>

<item
    android:id="@+id/item2"
    android:showAsAction="ifRoom|withText"
    android:title="item2"
    android:visible="true"/>

</menu>

我希望这是你想要的,结果是这样的:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31864643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档