zoukankan      html  css  js  c++  java
  • 3月26日学习日志

    今天学习了悬浮框的使用。

    主要代码为:

    public class MainActivity extends AppCompatActivity {
    
        private Button btn_show;
        private Context mContext;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mContext = MainActivity.this;
            btn_show = (Button) findViewById(R.id.btn_show);
            btn_show.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    initPopWindow(v);
                }
            });
        }
    
    
        private void initPopWindow(View v) {
            View view = LayoutInflater.from(mContext).inflate(R.layout.item_popup, null, false);
            Button btn_xixi = (Button) view.findViewById(R.id.btn_xixi);
            Button btn_hehe = (Button) view.findViewById(R.id.btn_hehe);
            //1.构造一个PopupWindow,参数依次是加载的View,宽高
            final PopupWindow popWindow = new PopupWindow(view,
                    ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
    
            popWindow.setAnimationStyle(R.anim.anim_pop);  //设置加载动画
    
            //这些为了点击非PopupWindow区域,PopupWindow会消失的,如果没有下面的
            //代码的话,你会发现,当你把PopupWindow显示出来了,无论你按多少次后退键
            //PopupWindow并不会关闭,而且退不出程序,加上下述代码可以解决这个问题
            popWindow.setTouchable(true);
            popWindow.setTouchInterceptor(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    return false;
                    // 这里如果返回true的话,touch事件将被拦截
                    // 拦截后 PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss
                }
            });
            popWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));    //要为popWindow设置一个背景才有效
    
    
            //设置popupWindow显示的位置,参数依次是参照View,x轴的偏移量,y轴的偏移量
            popWindow.showAsDropDown(v, 50, 0);
    
            //设置popupWindow里的按钮的事件
            btn_xixi.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this, "你点击了嘻嘻~", Toast.LENGTH_SHORT).show();
                }
            });
            btn_hehe.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this, "你点击了呵呵~", Toast.LENGTH_SHORT).show();
                    popWindow.dismiss();
                }
            });
        }
    }
  • 相关阅读:
    mysql配置时,提示:Failed to start service MYSQL80
    修改NUGET包默认存放位置
    非Hive Metastore Server节点执行load命令时出现“cannot recognize input near '<EOF>' '<EOF>' '<EOF>' in switch database statement”
    微信小程序登录授权及手机号获取
    后台获取 HttpServletResponse 中的值
    Request Payload 后台拦截器读取入参方式
    答题活动小程序
    答题小程序V5.0
    考研刷题小程序V2.0
    答题小程序优化
  • 原文地址:https://www.cnblogs.com/20193925zxt/p/14883202.html
Copyright © 2011-2022 走看看