【发布时间】:2014-05-19 20:57:24
【问题描述】:
我正在尝试以编程方式添加视图,但是当我这样做时,imageview 的大小不一样(我在另一个视图中使用它并由 xml 设置)。
这是我用来以编程方式添加视图的函数:
public void initClaps(int size, List<Clap> claps) {
LayoutParams params = new LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
//LayoutParams params2 = new LayoutParams(0, LayoutParams.WRAP_CONTENT,
// 33);
LayoutParams params3 = new LayoutParams(0,
LayoutParams.WRAP_CONTENT, 1.0f);
int position = 0;
for (int i = 0; i < size; i++) {
LinearLayout layout = new LinearLayout(getActivity());
layout.setWeightSum(3.0f);
layout.setOrientation(LinearLayout.HORIZONTAL);
if (i == 0) {
View view_add = in.inflate(R.layout.adapter_claps2, null);
layout.addView(view_add, params3);
for (int j = 0; j < 2; j++) {
View view_clap = in.inflate(R.layout.adapter_claps, null);
final Clap clap = claps.get(position);
FrameLayout fl = (FrameLayout) view_clap
.findViewById(R.id.fl_adapter_claps);
SmartImageViewRound siv = (SmartImageViewRound) view_clap
.findViewById(R.id.siv_adapter_claps);
TextView tv = (TextView) view_clap
.findViewById(R.id.tv_adapter_claps);
siv.setImageUrl(clap.getMini());
tv.setText("" + clap.getNom());
fl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(),
ClapDetail.class);
intent.putExtra(ClapDetail.INTENT_NOM,
clap.getNom());
getActivity().startActivity(intent);
}
});
layout.addView(view_clap, params3);
position++;
}
ll_container.addView(layout, params);
} else {
for (int j = 0; j < 3; j++) {
if(position != claps.size()){
final Clap clap = claps.get(position);
View view = in.inflate(R.layout.adapter_claps, null);
FrameLayout fl = (FrameLayout) view
.findViewById(R.id.fl_adapter_claps);
SmartImageViewRound siv = (SmartImageViewRound) view
.findViewById(R.id.siv_adapter_claps);
TextView tv = (TextView) view
.findViewById(R.id.tv_adapter_claps);
siv.setImageUrl(clap.getMini());
tv.setText("" + clap.getNom());
fl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(),
ClapDetail.class);
intent.putExtra(ClapDetail.INTENT_NOM,
clap.getNom());
getActivity().startActivity(intent);
}
});
layout.addView(view, params3);
position++;
}
}
ll_container.addView(layout, params);
}
}
}
【问题讨论】:
-
请您添加您的 xml ,以及您的结果和预期结果的屏幕截图