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布局
  • 相关阅读:
    边框上带有文字
    满屏展示
    javaScript中SetInterval与setTimeout区别
    圆形进度条
    抢购(秒杀)业务的技术要点
    Sybase 动态改变存储过程里查询的数据库
    在Hibernate映射文件里配置Sequence
    初学struts2杂乱笔记
    Struts2的学习链接
    DWR框架在web.xml的完整配置及注释
  • 原文地址:https://www.cnblogs.com/loaderman/p/10191771.html
Copyright © 2011-2022 走看看