android - Horizontal linearLayout's children out of screen -


i have horizontal linearlayout in framelayout. many textviews add linearlayout dynamically. below xml file:

<linearlayout                         android:id="@+id/an_item_tags_lay"                         android:layout_width="match_parent"                         android:layout_height="wrap_content"                         android:layout_gravity="bottom"                         android:layout_marginbottom="20dp"                         android:orientation="horizontal">                      </linearlayout> 

and function add textviews is:

private void createtags(){  arraylist<string> arr_tags  = new arraylist<>(); arr_tags.add("#flower"); arr_tags.add("#red"); arr_tags.add("#flower"); arr_tags.add("#red"); arr_tags.add("#flower"); arr_tags.add("#red"); arr_tags.add("#flower"); arr_tags.add("#red"); arr_tags.add("#flower"); arr_tags.add("#red"); arr_tags.add("#flower"); arr_tags.add("#red");  for(int = 0; < arr_tags.size(); i++){      textview tag = new textview(getactivity());     tag.setid(i);     tag.settext(arr_tags.get(i));     tag.settextcolor(r.getcolor(r.color.color_an_item_btn_tag_darker_color));     tag.setbackgroundresource(r.drawable.btn_tag_select);     tag.setpadding(20, 20, 20, 20);     linearlayout.layoutparams params = new linearlayout.layoutparams(linearlayout.layoutparams.wrap_content, linearlayout.layoutparams.wrap_content);     params.setmargins(4, 10, 4, 4);     tag.setlayoutparams(params);      an_item_tags_lay.addview(tag);  }  } 

the result following image: enter image description here

as can see in image, textviews go out of screen. when screen full, other views come next line. property should add linearlayout? there view behavior?

you need add programatically this:

tagviews.removeallviews();                             linearlayout ll = new linearlayout(this);                             ll.setorientation(linearlayout.horizontal);                             ll.setbackgroundcolor(color.white);                             ll.setlayoutparams(new linearlayout.layoutparams(linearlayout.layoutparams.match_parent, linearlayout.layoutparams.wrap_content));                             linearlayout childview;                             int remainingwidth, count = tagviews.getchildcount();                             if (count <= 0)                                 tagviews.addview(ll);                             textview tagtext;                              linearlayout.layoutparams params = new linearlayout.layoutparams(linearlayout.layoutparams.wrap_content,                                     linearlayout.layoutparams.wrap_content);                             params.setmargins(5, 5, 5, 5);                              int width = 0;                             windowmanager w = getwindowmanager();                             point size = new point();                             if (build.version.sdk_int >= build.version_codes.honeycomb_mr2) {                                 w.getdefaultdisplay().getsize(size);                                 width = size.x;                             } else { //            display d = w.getdefaultdisplay(); //            width = d.getwidth();                                 displaymetrics displaymetrics = new displaymetrics();                                 getwindowmanager().getdefaultdisplay().getmetrics(displaymetrics);                                 width = displaymetrics.widthpixels;                                 //int screenheight = displaymetrics.heightpixels;                             }                             try {                                 (int k = 0; k < arr.length(); k++) {                                     jsonobject obj = arr.getjsonobject(k);                                     myproductscattaghandler model = new myproductscattaghandler();                                     model.setname(obj.getstring("category_name"));                                     model.setid(obj.getstring("cat_id"));                                     tagmodels.add(model);                                     final string cat_name = obj.getstring("category_name");                                     final string cat_id = obj.getstring("cat_id");                                     (int = 0; < tagviews.getchildcount(); i++) {                                         childview = (linearlayout) tagviews.getchildat(i);                                         tagtext = new textview(this);                                         commonutilities.settypeface(this, tagtext, commonutilities.view_type.textview, commonutilities.type_face.callibri, 0);                                         tagtext.settext(cat_name);                                         tagtext.setlayoutparams(params);                                         tagtext.setpadding(10, 5, 10, 5);                                         //tagtext.setbackgroundcolor(color.rgb(0xee, 0xee, 0xee));                                         tagtext.setbackgroundresource(r.drawable.tags_bg);                                         // count = holder.tagviews.getchildcount();                                         childview.measure(0, 0);                                         remainingwidth = width - childview.getmeasuredwidth();                                         //// log.v("subcriptionadapter", "remaining width=" + remainingwidth + " childview width= " + childview.getmeasuredwidth());                                         try {                                             if (remainingwidth > childview.getmeasuredwidth()) {                                                 childview.addview(tagtext);                                                 childview.invalidate();                                                 break;                                             } else if ((i == tagviews.getchildcount() - 1) && (remainingwidth < childview.getmeasuredwidth())) {                                                 childview = new linearlayout(this);                                                 childview.setorientation(linearlayout.horizontal);                                                 childview.setlayoutparams(new linearlayout.layoutparams(linearlayout.layoutparams.wrap_content, linearlayout.layoutparams.wrap_content));                                                 childview.addview(tagtext);                                                 tagviews.addview(childview);                                                 childview.invalidate();                                                 break;                                             } else {                                                 continue;                                             }                                         } catch (exception e) {                                             e.printstacktrace();                                         }                                     }                                 }                             } catch (exception e) {                                 // todo: handle exception                                 e.printstacktrace();                             }                             tagviews.invalidate();                         } 

Comments

Popular posts from this blog

php - isset function not working properly -

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -