效果图:

Dialog的使用对Android开发者来说再经常不过了,这里分享一种使用Dialog实现PopupWindow效果的方法。

一、我们最好写一个工具类,用的时候直接调:

public class DialogUtils {    public static void showDialog(Context context, final OnTextClickListener onTextClickListener) {        Dialog dialog = new Dialog(context, R.style.DialogCommonStyle);        Window window = dialog.getWindow();        window.setGravity(Gravity.BOTTOM);// 位置        window.setContentView(R.layout.layout_my_dialog);        // 这里findViewBuId初始化控件,设置数据等等。        // 。。。        // 。。。        TextView textView = window.findViewById(R.id.textView);        textView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                onTextClickListener.onTextClick("传递数据");            }        });        dialog.setCanceledOnTouchOutside(true);// 触摸外面关闭dialog        WindowManager.LayoutParams lp = window.getAttributes();        lp.width = ScreenUtils.getScreenWidth(context);// dialog宽等于屏幕宽        lp.height = ScreenUtils.getScreenHeight(context) * 1/2;// dialog高为屏幕高一半        window.setAttributes(lp);        window.setBackgroundDrawableResource(R.color.black);// dialog背景        window.setWindowAnimations(R.style.AnimBottom);        dialog.show();    }        public interface OnTextClickListener {        void onTextClick(String str);    }    }

我们在layout_my_dialog.xml中自己布局,我这里只放了一个TextView作为例子,当然你可以放复杂的布局,例如:RecyclerView、自定义控件等等。通过定义接口来回调数据,这样做就完美的和activity分离了,而且复用性很强。

style.xml

    

push_bottom_in.xml

<?xml version="1.0" encoding="utf-8"?>        

push_bottom_out.xml

<?xml version="1.0" encoding="utf-8"?>        

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. Android(安卓)记事本-Demo
  5. Android(安卓)GestureDetector滑动监听事件
  6. 2.2.1 LinearLayout(线性布局)
  7. Android笔记(1)——不同apk之间传递参数与数据
  8. 初试GreenDAO 3.2.3
  9. Android:配置LitePal 3.0

随机推荐

  1. Android:混淆打包后出现的各种问题
  2. Android(安卓)Binder机制(三) ServiceMan
  3. Android之系统自带的文字外观设置及实际
  4. android studio 通过svn导入eclipse项目
  5. 读书计划
  6. Android的图片压缩类ThumbnailUtils
  7. I hope Android(安卓)will implement and
  8. 在 Android(安卓)应用中使用数据库
  9. Android(安卓)与 JS 交互数据上限问题【R
  10. 面试例题4:绘制5行文本,每一行的字体大小逐