gpt4 book ai didi

android - 每次在 getView 中 View 都会膨胀。 findViewById(...) 完成了很多次。我用过 View Holder

转载 作者:搜寻专家 更新时间:2023-11-01 09:06:20 26 4
gpt4 key购买 nike

public View getView(final int pos, View arg1, ViewGroup arg2) {

ViewHolder holder;
View view = arg1;

if (arg1 == null) {
holder = new ViewHolder();
System.out.println("Inflating view");
arg1 = mInflater.inflate(R.layout.inflatefreedownlod, arg2, false);
holder.im = (ImageView) arg1.findViewById(R.id.imf1);
holder.tv1 = (TextView) arg1.findViewById(R.id.tvf1);
holder.tv2 = (TextView) arg1.findViewById(R.id.mini1);
holder.tv3 = (TextView) arg1.findViewById(R.id.m1);
arg1.setTag(holder);

} else {

holder = (ViewHolder) arg1.getTag();
}

holder.tv1.setText(NAME.get(pos).toString());
holder.tv2.setText(contentName.get(pos).toString());
holder.tv3.setText(minidescp.get(pos).toString());
URL url1;

try {

url1 = new URL(imurl.get(pos).toString());
bmp = BitmapFactory.decodeStream(url1.openConnection().getInputStream());
holder.im.setImageBitmap(bmp);
//bmp.recycle();

} catch (Exception e) {
e.printStackTrace();
}

arg1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for (int i = 0; i < NAME.size(); i++)
if (pos == i) {
getFreeContent(Cid.get(pos).toString(), Vid.get(pos).toString(), contentName.get(pos).toString());
}

}

});

return arg1;
}

我看到 logcat 显示了 3 次 Inflating View。当我在模拟器上测试它时,我在 ListView 中显示了 3 个 LinearLayout。为什么我的 View 每次都是空的? View 也每次都膨胀。我的代码有什么问题

最佳答案

如果您的列表中有三个项目,并且您的 ListView 中屏幕上有三行的空间,则 getView() 将被调用三次null View 创建这三行。您不能回收当前正在使用的行。

关于android - 每次在 getView 中 View 都会膨胀。 findViewById(...) 完成了很多次。我用过 View Holder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11648995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com