动态加载布局时设置LinearLayout中的View的权重

在写程序时遇到这么一个问题.

根据数量的多少动态加载LinearLayout的个数,每个LinearLayout内部是横向排列的三个TextView,要让每个TextView中的文字居中显示,三个TextView还要平均分布占满整个屏幕的宽度,即用JAVA代码设置每个TextView的android:layout_weight属性,再网上查询了资料之后,终于解决,现在做个记录.


goodLayout.removeAllViews();
        //根据商品数量,动态生成布局
        for(int i=0;i<goodList.size();i++){
            //生成三个TextView
            TextView tv1=new TextView(this);
            TextView tv2=new TextView(this);
            TextView tv3=new TextView(this);
            //文字居中
            tv1.setGravity(Gravity.CENTER);
            tv2.setGravity(Gravity.CENTER);
            tv3.setGravity(Gravity.CENTER);
            tv1.setTextSize(16f);
            tv2.setTextSize(16f);
            tv3.setTextSize(16f);
            //设置权重
            tv1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT,1.0f));
            tv2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT,1.0f));
            tv3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT,1.0f));
            //设置内容
            tv1.setText(goodList.get(i).getCat_name());//项目
            tv2.setText(goodList.get(i).getTitle());
            if(goodList.get(i).getMarkup().equals("1")){
                //加价
                tv3.setText(goodList.get(i).getMarkup_price()+"元");
                tv3.setTextColor(getResources().getColor(R.color.textred));
            }else{
                //不加价
                tv3.setText("否");
            }
            //每一行的属性
            LinearLayout ll=new LinearLayout(this);
            ll.setLayoutParams(new ViewGroup.LayoutParams(LinearLayoutCompat.LayoutParams.MATCH_PARENT,LinearLayoutCompat.LayoutParams.WRAP_CONTENT));
            ll.setOrientation(LinearLayout.HORIZONTAL);
            ll.addView(tv1);
            ll.addView(tv2);
            ll.addView(tv3);
            goodLayout.addView(ll);
        }






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值