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布局
  • 相关阅读:
    不用第三个变量互换两变量的值的两种方法。
    struts2截取字符串
    js控制表格单双行颜色交替显示
    Shell字符串
    Shell数组:shell数组的定义、数组长度
    Shell注释
    Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
    Shell替换:Shell变量替换,命令替换,转义字符
    Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
    Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
  • 原文地址:https://www.cnblogs.com/loaderman/p/10191771.html
Copyright © 2011-2022 走看看