0
我有以下代碼,請參見下文。我想以編程方式將視圖添加到膨脹的佈局 - 因爲我希望添加到佈局的視圖的大小取決於我在ViewTree Observer中接收到的另一個視圖的大小(ViewTree Observer的預渲染偵聽器爲您提供了在使用「fill_parent」時獲得佈局項目大小的機會,因此必須預先繪製才能獲得大小)。Android:LayoutInflater - 添加視圖
我該怎麼做? LayoutInflater不提供添加視圖的方法。也許我只需要一個提示,我知道如何以編程方式創建視圖 - 但是如何在這種情況下添加它們?
PS:getView方法用於ListView。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
if (convertView == null) {
switch (type) {
case TYPE_ITEM0:
convertView = mInflater.inflate(R.layout.event_details_headline, null);
TextView toptext = (TextView) convertView.findViewById(R.id.toptext);
toptext.setText(mData.get(0).getTitle());
final ImageView imageView = (ImageView) convertView.findViewById(R.id.flyer);
AwesomeActivity.imageLoader.DisplayRoundedImage(mData.get(0).getFlyerURL(), imageView);
final int[] flyerheight = {0};
final int[] flyerwidth = {0};
final ImageView border = (ImageView) convertView.findViewById(R.id.border);
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
flyerheight[0] = imageView.getMeasuredHeight();
flyerwidth[0] = imageView.getMeasuredWidth();
// Here I want to add an ImageView based on flyerWidth and flyerHeight
return true;
}
});
break;
}
感謝您的快速響應。 – 2012-07-17 09:25:25