如何让popWindow显示在view上方

看了bilibili的客户端搜索按钮,很喜欢大爱!自己也想做个类似的(相似度 10% 哈哈)

popWin的出现退出动画也可以自己设定,用过其方法setAnimationStyle(R.style.xxx)设置Style文件进而设置显示退出动画

    <!-- popwindow进入和退出动画 -->
    <style name="popwin_anim_style">
        <item name="android:windowEnterAnimation">@anim/menushow</item>
        <item name="android:windowExitAnimation">@anim/menuhide</item>
    </style>

对应的show和hide文件,这里看以发现只是很简单的translate变换动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">  
    <translate  
        android:fromXDelta="-800"  
        android:toXDelta="0"  
        android:fromYDelta="0"  
        android:toYDelta="0"  
        android:duration="500" />  
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">  
    <translate  
        android:fromXDelta="0"  
        android:toXDelta="-700"  
        android:fromYDelta="0"  
        android:toYDelta="0"  
        android:duration="300" />  
</set>

我们在新建一个popupwindow之后 关键就在这里 显示的时候规定显示的位置

//这里是获取需要显示popwin的view的位置,然后使popwin显示在其上方    
                int[] location = new int[2];
                rv_menusearch.getLocationOnScreen(location);
                popsearch.showAtLocation(rv_menusearch, Gravity.NO_GRAVITY,
                        location[0], location[1] - popsearch.getHeight());

等到研究出类似bilibili动画的时候再改好了

原文地址:https://www.cnblogs.com/fengfenghuifei/p/5978371.html