根据需求,有的时候需要进行动态创建布局,也就是xml中的布局需要通过addView()的形式动态的进行创建。如下图:

图中红色部分:如果在xml中,应该是这样的

<LinearLayout                android:id="@+id/ll_facility_info_create"                android:layout_width="match_parent"                android:padding="20dp"                android:orientation="vertical"                android:background="@color/calendar_color_white"                android:layout_height="wrap_content">                <TextView                    android:layout_width="match_parent"                    android:layout_height="40dp"                    android:text="设施服务"                    android:textColor="#000000"                    android:gravity="center_vertical"                    android:textSize="@dimen/font20"/>                                <LinearLayout                    android:orientation="vertical"                    android:layout_width="match_parent"                    android:layout_height="wrap_content">                    <TextView                        android:layout_width="match_parent"                        android:layout_height="30dp"                        android:text="网络"                        android:textColor="#000000"                        android:gravity="center_vertical"/>                    <LinearLayout                        android:layout_width="match_parent"                        android:orientation="horizontal"                        android:layout_height="30dp">                        <TextView                            android:layout_width="0dp"                            android:layout_height="match_parent"                            android:layout_weight="1"                            android:gravity="center_vertical"                            android:text="wifi免费"                            />                        <TextView                            android:layout_width="0dp"                            android:layout_height="match_parent"                            android:layout_weight="1"                            android:gravity="center_vertical"                            android:text="wifi免费"                            />                        <TextView                            android:layout_width="0dp"                            android:layout_height="match_parent"                            android:layout_weight="1"                            android:gravity="center_vertical"                            android:text="wifi免费"                            />                    LinearLayout>                    <LinearLayout                        android:layout_width="match_parent"                        android:orientation="horizontal"                        android:layout_height="30dp">                        <TextView                            android:layout_width="0dp"                            android:layout_height="match_parent"                            android:layout_weight="1"                            android:gravity="center_vertical"                            android:text="wifi免费"                            />                        <TextView                            android:layout_width="0dp"                            android:layout_height="match_parent"                            android:layout_weight="1"                            android:visibility="invisible"                            android:gravity="center_vertical"                            android:text="wifi免费"                            />                        <TextView                            android:layout_width="0dp"                            android:layout_height="match_parent"                            android:layout_weight="1"                            android:visibility="invisible"                            android:gravity="center_vertical"                            android:text="wifi免费"                            />                    LinearLayout>                LinearLayout>            LinearLayout>

而java代码:

//    动态添加设施服务    private View addFacilityLayout(){//        初始化布局参数        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);//        创建最外层的LinearLayout        LinearLayout linearLayout = new LinearLayout(this);//        设置布局参数        linearLayout.setLayoutParams(layoutParams);//        设置子View的Linearlayout        linearLayout.setOrientation(LinearLayout.VERTICAL);//        第一个子View  TextView//        设置子View的布局        LinearLayout.LayoutParams viewLayoutParams1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,                DensityUtils.dip2px(context,30));//        创建子View TextView        TextView textView = new TextView(this);//        设置内容的位置        textView.setGravity(Gravity.CENTER_VERTICAL);//        设置字体颜色        textView.setTextColor(Color.BLACK);        textView.setText("网络");//        设置布局参数        textView.setLayoutParams(viewLayoutParams1);//        将第一子View添加到最外层的linearlayout中        linearLayout.addView(textView);        for (int i = 0; i < 2; i++) {            //        第二个子View  LinearLayout            LinearLayout.LayoutParams viewLayoutParams2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,                    DensityUtils.dip2px(context,30));            LinearLayout linearLayout1 = new LinearLayout(this);            linearLayout1.setLayoutParams(viewLayoutParams2);//        设置子View的Linearlayout            linearLayout1.setOrientation(LinearLayout.HORIZONTAL);            //        第二个子View  LinearLayout中的TextView            for (int j = 0; j < 3; j++) {//          设置子View的布局                LinearLayout.LayoutParams vp1 = new LinearLayout.LayoutParams(0,DensityUtils.dip2px(context,30),1.0f);//        创建子View TextView                TextView tv1 = new TextView(this);//        设置内容的位置                tv1.setGravity(Gravity.CENTER_VERTICAL);//        设置布局参数                tv1.setLayoutParams(vp1);                //        设置字体颜色                tv1.setText("wifi网络");//                添加子view                linearLayout1.addView(tv1);            }//            添加子View            linearLayout.addView(linearLayout1);        }        return linearLayout;    }

调用:

 LinearLayout ll_facility_info_create = findViewById(R.id.ll_facility_info_create); ll_facility_info_create.addView(addFacilityLayout());

更多相关文章

  1. Activity实现自定义Dialog
  2. 解决API<8时引发的AlerDialog is not created – java.lan...
  3. Android(安卓)自定义TitleBar
  4. Android——按钮操作
  5. android 中的PopupWindow 弹出菜单
  6. Android开发学习之布局
  7. 【Android】pendingIntent和Intent
  8. 【Android(安卓)新浪微博】--底部Tab的实现
  9. Android(安卓)解决自定义控件布局中match_parent属性无效

随机推荐

  1. android 打开扬声器
  2. Android(安卓)TextView自动换行
  3. Android(安卓)BaseExpandableListAdapter
  4. android Dialog的确定按钮点击后不取消对
  5. 如何修改android开机启动默认横竖屏
  6. vs xamarin android 读取rest
  7. Android(安卓)Studio配置Android(安卓)an
  8. android tabhost学习
  9. android 判断 wifi 是否是 5G
  10. Android相机、图册demo