美文网首页
继承LinearLayout实现自定义的布局

继承LinearLayout实现自定义的布局

作者: yezi1989 | 来源:发表于2018-07-01 11:55 被阅读67次

    继续学习:
    在Linearlayout的构造函数中通过使用映射机制加载布局文件,即通过Inflater方法,在使用该方法自定义的控件时,由于所有的子元素都是在运行时通过代码动态创建的,所以该控件只能以一个独立的控件形式在Layout文件中声明:

    public class CustomLayout extends LinearLayout{
       public  CustomLayout(Context context){
                 LayoutInflater mInflater = LayoutInflater.from(context);
                View myView = mInflater.inflate(R.layout.receive, null);
                addView(myView);
       }
    }
    

    布局xml文件:

     < LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="+id/receive"
        androidundefinedrientation="vertical" >
       <LinearLayout 
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          androidundefinedrientation="horizontal">
          <TextView
                   android:layout_width="wrap_content"
                  android:layout_height="wrap_content" />
         <Button
                 android:layout_width="wrap_content"
                  android:layout_height="wrap_content" 
                  android:id="@+id/button" />
       </LinearLayout>
    
           <TextView
                   android:layout_width="wrap_content"
                  android:layout_height="wrap_content" />        
                   
    < /LinearLayout>
    

    为何还要使用addview:
    Android中,addView(ViewGroup view, index)在指定的index处添加一个view。addView是继承viewGroup的方法,

    void android.view.ViewGroup.addView(View child);
    void android.view.ViewGroup.addView(View child, LayoutParams params);
    void android.view.ViewGroup.addView(View child,int index, LayoutParams params);
    

    其中需要注意的是 index ,在linearlayout中使用addView的时候,如果linearlayout方向是vertical 垂直, index代表添加的child的view在linearlayout的行数,index是0,表示添加的child在linearlayout顶部,-1为底部,可以利用排版View的 addView 函数,将动态产生的View 组件加入到排版View 中。

    相关文章

      网友评论

          本文标题:继承LinearLayout实现自定义的布局

          本文链接:https://www.haomeiwen.com/subject/jiucuftx.html