for (int i = 0; i < c.getCount(); i++)
{
ChildLayout=new LinearLayout(getActivity());
ChildLayout.setWeightSum(100);
ChildLayout.setOrientation(LinearLayout.HORIZONTAL);
new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
ChildLayout.setId(i);
Prd_txt = new TextView(getActivity());
Prd_txt.setId(c.getInt(3));
ProdStr_All.add(c.getString(4));
ProdTxt_All.add(Prd_txt);
Prd_txt.setPadding(8, 0, 0, 0);
edit_phy = new EditText(getActivity());
edit_phyAll.add(edit_phy);
edit_phy.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
edit_phy.setId(Dist_cat[k]);
edit_phy.setGravity(Gravity.RIGHT);
edit_trn = new EditText(getActivity());
edit_trnAll.add(edit_trn);
edit_trn.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
edit_trn.setId(Dist_cat[k]);
edit_trn.setGravity(Gravity.RIGHT);
Total=new TextView((getActivity()));
tot_all.add(Total);
Total.setId(k);
Total.setGravity(Gravity.RIGHT);
Total.setTextSize((global_variables.ConvertPixels(getActivity(), 19)));
LinearLayout.LayoutParams layoutParams2 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT,50);
LinearLayout.LayoutParams layoutParams3 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT,16);
ChildLayout.addView(Prd_txt, 0,layoutParams2);
ChildLayout.addView(edit_phy, 1,layoutParams3);
ChildLayout.addView(edit_trn, 2,layoutParams3);
ChildLayout.addView(Total, 3,layoutParams3);
if(i%2==0)
{
ChildLayout.setBackgroundResource(R.color.colortablelight);
}else
{
ChildLayout.setBackgroundResource(R.color.colortablemedium);
}
MainLayout.addView(ChildLayout,layoutParams);
c.moveToNext();
}
for(int m=0;m<ProdTxt_All.size();m++)
{
ProdTxt_All.get(m).setText(ProdStr_All.get(m));
}
问题: 我想将我的线性布局划分为固定大小的Product weightsum 50和rest 16但是无法实现这一点,试图增加高度和宽度,但在不同的分辨率下它显示不同。所以尝试了权重。怎么解决?
答案 0 :(得分:0)
@Rashmi S. 在XML上做这件事有什么问题?因为它易于处理,尤其是使用UI Designer软件或您所称的软件,从可维护性和可读性的角度来看它更清洁。这只是我的意见,如果你有理由这样做,可能还有另一种方法。
答案 1 :(得分:0)
通过同时使用WRAP_CONTENT
和weight
,LinearLayout
将在照顾weight
之前为内容计算并准备足够的空间。这就是为什么有时在使用xml
在设计版面中设置视图时会看到此警告的原因。
为确保父视图正确地将孩子按体重分开,请在体重之前设置高度= 0(垂直)以及宽度= 0(水平)。
LinearLayout.LayoutParams layoutParams2 = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT,50);
LinearLayout.LayoutParams layoutParams3 = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT,16);