先上效果 相信许多项目都需要这种效果的
拿到这个需求 就有了几个解决方案 一种是用 布局隐藏 加 属性动画实现 后来发现这种方法的点击事件比较麻烦 适合从上弹出沾满整个屏幕 像这种有可能的出现一部分的内容的情况就不怎么适应了
所以我果断选择用popupwindow来实现这种需求
说说用popupwindow的思路吧 让popupwindow弹出很容易 可是背景遮罩确实不好加 还需要这样比较美观的 在网上看了看 大概有两种方案 一种是讲popupwindow占满全屏 下面没有内容部分的空间加上遮罩背景 这种方案弹出时明显可以看出整个空间的弹出效果 不太符合要求
第二种方案
privatevoidbackgroundAlpha(floatf) {
WindowManager.LayoutParams lp =getWindow().getAttributes();
lp.alpha = f;
getWindow().setAttributes(lp);
}
这种方法全局加遮罩 可是这样popupwindow的上面的空间也加上了 遮罩 不太美观
下面就说说我实现的思路吧
我将title以下的部分除了显示内容的控件以外 又加了个同样大小的遮罩控件 开始是隐藏的
activity_main.xml 布局
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:gravity="top"
android:background="#EFEFF4">
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_below="@+id/spread_toolbar"
android:background="#dfdfdf"/>
android:layout_width="match_parent"
android:layout_height="match_parent"
android: