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

    xiaoxiao2021-03-25  83

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

    根据数量的多少动态加载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); }

    转载请注明原文地址: https://ju.6miu.com/read-18001.html

    最新回复(0)