您的位置:首页 > 其它

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

2017-03-10 09:30 1421 查看
在写程序时遇到这么一个问题.

根据数量的多少动态加载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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  动态设置权重
相关文章推荐