如何将膨胀视图添加到线性布局

moh*_*han 5 android layout-inflater

你如何膨胀视图并将其添加到一个子视图列表LinearLayout

Edw*_*rey 7

当你调用inflater构造函数时,设置attachToRoot为false; 然后在初始化后手动添加视图.否则,除了添加的第一个孩子之外,您将失去所有初始化.

例:

View view = inflater.inflate(R.layout.some_view, parent, false);
((TextView) view.findViewById(R.id.some_text)).setText(someString);
parent.addView(view);
Run Code Online (Sandbox Code Playgroud)

不做的事情的一个例子:

View view = inflater.inflate(R.layout.some_view, parent);
((TextView) view.findViewById(R.id.some_text)).setText(someString);
Run Code Online (Sandbox Code Playgroud)


pen*_*ang 0

public class SearchResultAdapter extends BaseAdapter {\n\nprivate Activity activity;\nprivate ArrayList<SearchResultInfo> ChoseInfo;\nprivate static LayoutInflater inflater=null;\npublic SearchResultImageLoader imageLoader; \n\npublic SearchResultAdapter(Activity a, ArrayList<SearchResultInfo> ChoseInfo) {\n    activity = a;\n   this.ChoseInfo=ChoseInfo;\n    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);\n    imageLoader=new SearchResultImageLoader(activity.getApplicationContext());\n}\n\npublic int getCount() {\n    return ChoseInfo.size();\n}\n\npublic Object getItem(int position) {\n    return position;\n}\n\npublic long getItemId(int position) {\n    return position;\n}\n\npublic static class ViewHolder{\n    public TextView PriceValue;\n    public ImageView image;\n    public TextView LikeValue;\n    public TextView LikeName;\n\n}\n\npublic View getView(int position, View convertView, ViewGroup parent) {\n    View vi=convertView;\n    ViewHolder holder;\n    if(convertView==null){\n\n        vi = inflater.inflate(R.layout.searchresult_showlayout_item, null);\n        holder=new ViewHolder();\n        holder.PriceValue=(TextView)vi.findViewById(R.id.priceValue);\n        holder.image=(ImageView)vi.findViewById(R.id.clothimage);\n        holder.LikeName=(TextView)vi.findViewById(R.id.LikeName);\n        holder.LikeValue=(TextView)vi.findViewById(R.id.LikeValue);\n\n\n        vi.setTag(holder);\n    }\n    else\n        {\n          holder=(ViewHolder)vi.getTag();\n        }\n\n\n\n\n\n\n    holder.PriceValue.setText(ChoseInfo.get(position).Price);\n    holder.LikeValue.setText(ChoseInfo.get(position).LikeNum);\n    holder.image.setTag(ChoseInfo.get(position).BitmapPath);\n    imageLoader.DisplayImage(ChoseInfo.get(position).BitmapPath, activity, holder.image);\n    holder.image.setOnClickListener(new View.OnClickListener() {\n\n        @Override\n        public void onClick(View v) {\n            //\xe8\xbf\x99\xe9\x87\x8c\xe4\xbb\xa5\xe5\x90\x8e\xe8\xa6\x81\xe8\xbf\x9b\xe8\xa1\x8c\xe4\xbc\xa0\xe5\x80\xbc\n             Intent intent =new Intent();\n             intent.setClass(getDialogContext(activity), SearchDetailActivity.class);\n             intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);\n             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\n             intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);\n             getDialogContext(activity).startActivity(intent);\n        }\n    });\n\n\n    return vi;\n}\n
Run Code Online (Sandbox Code Playgroud)\n