gpt4 book ai didi

android - 在适配器的构造函数中膨胀 xml 文件

转载 作者:行者123 更新时间:2023-11-30 03:58:48 25 4
gpt4 key购买 nike

我有一个 ExpandableListView 并正在为其设置一个自定义的 BaseExpandableAdapter。我的问题是,我可以在 Adapter 本身的构造函数中膨胀我想要显示的 Layout(XML),而不是每次在 getChildView() 中膨胀它吗?不过,我将动态更改要与要在 getChildView() 中选择的每个可扩展列表一起显示的图像。代码在这里。

public class MyExpandableListAdapter extends BaseExpandableListAdapter {

private Context mContext;
private LayoutInflater mInflater;
GridLayout gl = null;
HorizontalScrollView hScrl;
public MyExpandableListAdapter (ArrayList<SensorType> parentGroup, Context context) {
mContext = context;
mInflater = LayoutInflater.from(mContext);
View view = infalInflater.inflate(R.layout.expandlist_items, null);
gl = (GridLayout) view.findViewById(R.id.gl);
hScrl = (HorizontalScrollView) view.findViewById(R.id.hScroll);
}

@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if (childPosition == 0) {
gl1.removeAllViews();
}
int mMax = 8; // show 8 images
for (int i =0; i < mMax; i++) {
ImageView myImg = new ImageView(mContext);
myImg.setBackgroundRes(R.drawable.image1);
gl.addView(myImg);
}

return hScrl;
}

上面有没有问题,如果有更多图像,它会正确显示图像并滚动。但我的问题是,这个 inflated layout 和获取 gl 和 hscrl 的工作,应该在 Adapter 的构造函数中(如上所示)还是应该在 getChildView 中???

这 4 个 LOC:

mInflater = LayoutInflater.from(mContext);
View view = infalInflater.inflate(R.layout.expandlist_items, null);
gl = (GridLayout) view.findViewById(R.id.gl);
hScrl = (HorizontalScrollView) view.findViewById(R.id.hScroll);

最佳答案

我发现如果我需要为适配器中的每个项目一次又一次地 inflated layout ,那么应该在任何适配器的 getChildView() 或 getView() 中完成膨胀。但是在上面的代码中,我在构造函数中将它膨胀一次,然后将图像手动添加到 GridLayout,因此我不需要在 getChildView() 中一次又一次地膨胀它。因此它工作正常,因为它在适配器的构造函数中膨胀了一次。

关于android - 在适配器的构造函数中膨胀 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12893231/

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