zoukankan      html  css  js  c++  java
  • 自定义控件的使用方法

    1.自定义一个派生的view或者viewgroup类的控件时,必须实现一个构造函数,有三个构造函数需要实现

    如:

       public CustomView(Context context) {
            super(context);
           
        }
        public CustomView(Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
           
        }
        public CustomView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {//xml引用控件,必须实现这个构造函数
            super(context, attrs, defStyleAttr);
           
        }

    动态添加控件

            /**
             * layout_wight定义
             */
    //        LinearLayout rootView = (LinearLayout) findViewById(R.id.root);
    //        CustomView customView = new CustomView(this);
    //        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    //        layoutParams.weight = 1.0f;
    //        rootView.addView(customView, layoutParams);
    
    
            /**
             * RelativeLayout添加布局规则
             */
    //        RelativeLayout rootView = (RelativeLayout) findViewById(R.id.root);
    //        CustomView customView = new CustomView(this);
    //        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
    //        layoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.text);  //第一个参数是相对布局的布局属性,第二个参数是指相对哪个控件ID来布局
    //        rootView.addView(customView, layoutParams);
    
    
            /**
             * setGravity使用
             */
            RelativeLayout rootView = (RelativeLayout) findViewById(R.id.root);
            RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 200);
            layoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.text);
    
            Button button = new Button(this);
            button.setGravity(Gravity.TOP);
            button.setText("btn");
            rootView.addView(button, layoutParams);
            rootView.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);

    RelativeLayoutLinearLayout特殊,需要多设置相对属性在代码中动态设置,这些的方法是通过RelativeLayout.LayiutParams的addRule函数

    public void addRule(int verb, int subject)// verb布局属性,subject根据哪个控件ID布局
  • 相关阅读:
    妈妈之歌 The Mom Song 中文字幕
    40个实用的轻量级JavaScript库
    2009超强流行词汇
    60+CSS技巧教程资源大全
    关于zindex的那些事儿
    FF和IE之间7个JavaScript的差异
    IE6 不支持PNG问题
    邮件营销EDM模板制作规范
    css层的定位position、absolute、relative层叠加的五条叠加法则
    IE8的CSS hack
  • 原文地址:https://www.cnblogs.com/loaderman/p/10191771.html
Copyright © 2011-2022 走看看