\n\u003C/LinearLayout>\n","xml",[32,271,272,277,282,287,292,297,302,307,312,317,322,327],{"__ignoreMap":30},[35,273,274],{"class":37,"line":38},[35,275,276],{},"\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\n",[35,278,279],{"class":37,"line":44},[35,280,281],{},"\u003CLinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n",[35,283,284],{"class":37,"line":50},[35,285,286],{}," android:layout_width=\"match_parent\"\n",[35,288,289],{"class":37,"line":56},[35,290,291],{}," android:layout_height=\"match_parent\"\n",[35,293,294],{"class":37,"line":62},[35,295,296],{}," android:orientation=\"vertical\">\n",[35,298,299],{"class":37,"line":68},[35,300,301],{}," \u003CTextView\n",[35,303,304],{"class":37,"line":74},[35,305,306],{}," android:id=\"@+id/text\"\n",[35,308,309],{"class":37,"line":80},[35,310,311],{}," android:layout_width=\"match_parent\"\n",[35,313,314],{"class":37,"line":86},[35,315,316],{}," android:layout_height=\"30dp\"\n",[35,318,319],{"class":37,"line":92},[35,320,321],{}," android:gravity=\"center_vertical\"\n",[35,323,324],{"class":37,"line":97},[35,325,326],{}," android:padding=\"5dp\"/>\n",[35,328,329],{"class":37,"line":102},[35,330,331],{},"\u003C/LinearLayout>\n",[18,333,334],{},"Then we add the created adapter to a ListView (or a ListActivity like here):",[25,336,338],{"className":27,"code":337,"language":29,"meta":30,"style":30},"public class ExpandableListActivity extends ListActivity {\n@Override\npublic void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n List\u003CString> entries = new ArrayList\u003CString>();\n for (int i = 1; i \u003C= 101; i++) {\n entries.add(\"Entry \" + i);\n }\n setListAdapter(new ExpandableListAdapter(entries, this));\n}\n private class ExpandableListAdapter extends BaseAdapter{....}\n}\n",[32,339,340,345,350,355,360,365,370,375,380,385,389,394],{"__ignoreMap":30},[35,341,342],{"class":37,"line":38},[35,343,344],{},"public class ExpandableListActivity extends ListActivity {\n",[35,346,347],{"class":37,"line":44},[35,348,349],{},"@Override\n",[35,351,352],{"class":37,"line":50},[35,353,354],{},"public void onCreate(Bundle savedInstanceState) {\n",[35,356,357],{"class":37,"line":56},[35,358,359],{}," super.onCreate(savedInstanceState);\n",[35,361,362],{"class":37,"line":62},[35,363,364],{}," List\u003CString> entries = new ArrayList\u003CString>();\n",[35,366,367],{"class":37,"line":68},[35,368,369],{}," for (int i = 1; i \u003C= 101; i++) {\n",[35,371,372],{"class":37,"line":74},[35,373,374],{}," entries.add(\"Entry \" + i);\n",[35,376,377],{"class":37,"line":80},[35,378,379],{}," }\n",[35,381,382],{"class":37,"line":86},[35,383,384],{}," setListAdapter(new ExpandableListAdapter(entries, this));\n",[35,386,387],{"class":37,"line":92},[35,388,261],{},[35,390,391],{"class":37,"line":97},[35,392,393],{}," private class ExpandableListAdapter extends BaseAdapter{....}\n",[35,395,396],{"class":37,"line":102},[35,397,261],{},[18,399,400],{},"The list as it is now shows all entries, so the next thing to do, is implementing the limiting function to the adapter.",[18,402,403],{},"Let’s start by giving our adapter a member variable for the limit:",[25,405,407],{"className":27,"code":406,"language":29,"meta":30,"style":30},"private int limit = 20;\n",[32,408,409],{"__ignoreMap":30},[35,410,411],{"class":37,"line":38},[35,412,406],{},[18,414,415],{},"Next we need to modify some of the methods to get this working:",[18,417,418],{},"In getCount we need to either return the limit, or the size of the list, if the limit is greater than the list, because\nour list contains all entries and we only want to display a part of it.",[25,420,422],{"className":27,"code":421,"language":29,"meta":30,"style":30},"@Override\npublic int getCount() {\n if (entries.size() \u003C= limit) {\n return entries.size();\n }\n return limit;\n}\n",[32,423,424,428,433,438,443,447,452],{"__ignoreMap":30},[35,425,426],{"class":37,"line":38},[35,427,349],{},[35,429,430],{"class":37,"line":44},[35,431,432],{},"public int getCount() {\n",[35,434,435],{"class":37,"line":50},[35,436,437],{}," if (entries.size() \u003C= limit) {\n",[35,439,440],{"class":37,"line":56},[35,441,442],{}," return entries.size();\n",[35,444,445],{"class":37,"line":62},[35,446,379],{},[35,448,449],{"class":37,"line":68},[35,450,451],{}," return limit;\n",[35,453,454],{"class":37,"line":74},[35,455,261],{},[18,457,458],{},"Next, we need to adjust the getItem method with an further clause in the if",[25,460,462],{"className":27,"code":461,"language":29,"meta":30,"style":30},"if (position >= 0 && position \u003C limit && position \u003C entries.size())\n return entries.get(position);\n",[32,463,464,469],{"__ignoreMap":30},[35,465,466],{"class":37,"line":38},[35,467,468],{},"if (position >= 0 && position \u003C limit && position \u003C entries.size())\n",[35,470,471],{"class":37,"line":44},[35,472,473],{}," return entries.get(position);\n",[18,475,476],{},"Now for the biggest change for our new functionality: the implementation of the ‘more button’.",[25,478,480],{"className":27,"code":479,"language":29,"meta":30,"style":30},"private LinearLayout getMoreView() {\n LinearLayout moreView = (LinearLayout) getLayoutInflater().inflate(R.layout.more_row, null);\n moreView.setOnClickListener(new View.OnClickListener() {\n public void onClick(View v) {\n listAdapter.increaseLimit();\n }\n });\n return moreView;\n}\n",[32,481,482,487,492,497,502,507,511,516,521],{"__ignoreMap":30},[35,483,484],{"class":37,"line":38},[35,485,486],{},"private LinearLayout getMoreView() {\n",[35,488,489],{"class":37,"line":44},[35,490,491],{}," LinearLayout moreView = (LinearLayout) getLayoutInflater().inflate(R.layout.more_row, null);\n",[35,493,494],{"class":37,"line":50},[35,495,496],{}," moreView.setOnClickListener(new View.OnClickListener() {\n",[35,498,499],{"class":37,"line":56},[35,500,501],{}," public void onClick(View v) {\n",[35,503,504],{"class":37,"line":62},[35,505,506],{}," listAdapter.increaseLimit();\n",[35,508,509],{"class":37,"line":68},[35,510,203],{},[35,512,513],{"class":37,"line":74},[35,514,515],{}," });\n",[35,517,518],{"class":37,"line":80},[35,519,520],{}," return moreView;\n",[35,522,523],{"class":37,"line":86},[35,524,261],{},[18,526,527],{},"Create another simple xml like this (disregarded i18n for this simple test case. Of course, Strings should normally be\ndeclared in the strings.xml):",[25,529,531],{"className":267,"code":530,"language":269,"meta":30,"style":30},"\u003C?xml version=\"1.0\" encoding=\"utf-8\"?>\n\u003CLinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n android:layout_width=\"fill_parent\"\n android:layout_height=\"wrap_content\"\n android:orientation=\"horizontal\"\n android:paddingLeft=\"20dp\"\n android:paddingRight=\"20dp\">\n \u003CTextView\n android:id=\"@+id/MoreRowText\"\n android:layout_width=\"fill_parent\"\n android:layout_height=\"40dp\"\n android:text=\"Load more...\"\n android:gravity=\"center\"/>\n\u003C/LinearLayout>\n",[32,532,533,537,541,546,551,556,561,566,570,575,580,585,590,595],{"__ignoreMap":30},[35,534,535],{"class":37,"line":38},[35,536,276],{},[35,538,539],{"class":37,"line":44},[35,540,281],{},[35,542,543],{"class":37,"line":50},[35,544,545],{}," android:layout_width=\"fill_parent\"\n",[35,547,548],{"class":37,"line":56},[35,549,550],{}," android:layout_height=\"wrap_content\"\n",[35,552,553],{"class":37,"line":62},[35,554,555],{}," android:orientation=\"horizontal\"\n",[35,557,558],{"class":37,"line":68},[35,559,560],{}," android:paddingLeft=\"20dp\"\n",[35,562,563],{"class":37,"line":74},[35,564,565],{}," android:paddingRight=\"20dp\">\n",[35,567,568],{"class":37,"line":80},[35,569,301],{},[35,571,572],{"class":37,"line":86},[35,573,574],{}," android:id=\"@+id/MoreRowText\"\n",[35,576,577],{"class":37,"line":92},[35,578,579],{}," android:layout_width=\"fill_parent\"\n",[35,581,582],{"class":37,"line":97},[35,583,584],{}," android:layout_height=\"40dp\"\n",[35,586,587],{"class":37,"line":102},[35,588,589],{}," android:text=\"Load more...\"\n",[35,591,592],{"class":37,"line":108},[35,593,594],{}," android:gravity=\"center\"/>\n",[35,596,597],{"class":37,"line":114},[35,598,331],{},[18,600,601],{},"And add a method to the adapter to increase the limit:",[25,603,605],{"className":27,"code":604,"language":29,"meta":30,"style":30}," public void increaseLimit() {\n limit+=20;\n //remove the button if we can no longer expand the list\n if (limit >= entries.size()) {\n getListView().removeFooterView(moreView);\n }\n //notify to redraw the list\n notifyDataSetChanged();\n }\n",[32,606,607,612,617,622,627,632,636,641,646],{"__ignoreMap":30},[35,608,609],{"class":37,"line":38},[35,610,611],{}," public void increaseLimit() {\n",[35,613,614],{"class":37,"line":44},[35,615,616],{}," limit+=20;\n",[35,618,619],{"class":37,"line":50},[35,620,621],{}," //remove the button if we can no longer expand the list\n",[35,623,624],{"class":37,"line":56},[35,625,626],{}," if (limit >= entries.size()) {\n",[35,628,629],{"class":37,"line":62},[35,630,631],{}," getListView().removeFooterView(moreView);\n",[35,633,634],{"class":37,"line":68},[35,635,379],{},[35,637,638],{"class":37,"line":74},[35,639,640],{}," //notify to redraw the list\n",[35,642,643],{"class":37,"line":80},[35,644,645],{}," notifyDataSetChanged();\n",[35,647,648],{"class":37,"line":86},[35,649,379],{},[18,651,652],{},"At last, we simply add the button as a footer view to our list (After creation of the ListView, but before setting the\nListAdapter to the ListView):",[25,654,656],{"className":27,"code":655,"language":29,"meta":30,"style":30},"moreView = getMoreView();\nlistAdapter = new ExpandableListAdapter(entries);\ngetListView().addFooterView(moreView);\nsetListAdapter(listAdapter);\n",[32,657,658,663,668,673],{"__ignoreMap":30},[35,659,660],{"class":37,"line":38},[35,661,662],{},"moreView = getMoreView();\n",[35,664,665],{"class":37,"line":44},[35,666,667],{},"listAdapter = new ExpandableListAdapter(entries);\n",[35,669,670],{"class":37,"line":50},[35,671,672],{},"getListView().addFooterView(moreView);\n",[35,674,675],{"class":37,"line":56},[35,676,677],{},"setListAdapter(listAdapter);\n",[18,679,680],{},"And that’s it for the simple case of a static list 🙂",[18,682,683],{},"If you want to do this a bit more dynamic or you don’t want to load whole database table (or the whole internet) into\nyour list, you have to do some extra work.",[685,686,687,691,694],"ol",{},[688,689,690],"li",{},"Load the next X entries with an AsyncTask (display a ProgressDialog while it is getting the data!) and add a method\nto your adapter, that adds this entries to the list. Call this method from within the onPostExecute method of the\nAsyncTask",[688,692,693],{},"You may want to keep track of the total number of entries you have to know when the user can’t load any more entries\nand to remove the button. (If the dataset is not bound to grow every few seconds. Otherwise, maybe let the user try\nto hit the button and see for himself, if theres new data)",[688,695,696],{},"Keep in mind to notify your users if anything fails, like the next entries could not have been loaded, because they\nhave no internet connection.",[18,698,699,700,708],{},"A Little homework for you: Combine it with\nthe ",[701,702,707],"a",{"href":703,"rel":704,"title":706},"http://blog.synyx.de/2011/11/android-listview-with-rounded-corners/",[705],"nofollow","android listview with rounded corners","rounded corners example","\nto make it look better 😛",[18,710,711,712],{},"Here’s the source, btw:",[701,713,716],{"href":714,"rel":715},"https://media.synyx.de/uploads//2012/12/ExpandableListview.zip",[705],"ExpandableListview",[718,719,720],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":30,"searchDepth":44,"depth":44,"links":722},[],[724,725],"mobile-blog","tutorial","2012-12-07T09:39:26","In today’s tutorial I’d like to show you how to implement a ListView, that only displays a limited number of entries.\\nWith a button at the end of the list, the user can load more entries.","md","https://synyx.de/blog/android-expandable-listview/",{},true,"/blog/android-expandable-listview",{"title":7,"description":20},"blog/android-expandable-listview",[736,737,738,739,740,741,742,743],"android","entries","entry","expandable","limit","limited","list","listview","In today’s tutorial I’d like to show you how to implement a ListView, that only displays a limited number of entries. With a button at the end of the list,…","2cPxf8ntm24639cXpvDd1uvgjk37n-ulC-vUEA0BPZw",[747,750,753,756,759,762,765,768,771,774,777,780,783,786,789,792,795,798,801,804,807,810,812,815,818,821,824,826,829,832,835,838,841,844,847,850,853,856,859,862,865,868,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,933,936,939,942,945,948,951,954,957,960,963,966,969,972,975,978,981,984,987,990,993,996,999,1002,1005,1008,1011,1014,1017,1020,1023,1026,1029,1032,1035,1038,1040,1043,1046,1049,1052,1054,1057,1060,1063,1066,1069,1072,1075,1078,1081,1084,1087,1090,1093,1096,1099,1102,1105,1108,1111,1114,1117,1120,1123,1126,1129,1131,1134,1137,1140,1143,1146,1149,1152,1155,1158,1161,1164],{"slug":748,"name":749},"abel","Jennifer Abel",{"slug":751,"name":752},"allmendinger","Otto Allmendinger",{"slug":754,"name":755},"antony","Ben Antony",{"slug":757,"name":758},"arrasz","Joachim Arrasz",{"slug":760,"name":761},"bauer","David Bauer",{"slug":763,"name":764},"bechtold","Janine Bechtold",{"slug":766,"name":767},"boersig","Jasmin Börsig",{"slug":769,"name":770},"buch","Fabian Buch",{"slug":772,"name":773},"buchloh","Aljona Buchloh",{"slug":775,"name":776},"burgard","Julia Burgard",{"slug":778,"name":779},"caspar-schwedes","Caspar Schwedes",{"slug":781,"name":782},"christina-schmitt","Christina Schmitt",{"slug":784,"name":785},"clausen","Michael Clausen",{"slug":787,"name":788},"contargo_poetzsch","Thomas Pötzsch",{"slug":790,"name":791},"damrath","Sebastian Damrath",{"slug":793,"name":794},"daniel","Markus Daniel",{"slug":796,"name":797},"dasch","Julia Dasch",{"slug":799,"name":800},"denman","Joffrey Denman",{"slug":802,"name":803},"dfuchs","Daniel Fuchs",{"slug":805,"name":806},"dobler","Max Dobler",{"slug":808,"name":809},"dobriakov","Vladimir Dobriakov",{"slug":811,"name":811},"dreiqbik",{"slug":813,"name":814},"dschaefer","Denise Schäfer",{"slug":816,"name":817},"dschneider","Dominik Schneider",{"slug":819,"name":820},"duerlich","Isabell Duerlich",{"slug":822,"name":823},"dutkowski","Bernd Dutkowski",{"slug":825,"name":825},"eifler",{"slug":827,"name":828},"essig","Tim Essig",{"slug":830,"name":831},"ferstl","Maximilian Ferstl",{"slug":833,"name":834},"fey","Prisca Fey",{"slug":836,"name":837},"frank","Leonard Frank",{"slug":839,"name":840},"franke","Arnold Franke",{"slug":842,"name":843},"frischer","Nicolette Rudmann",{"slug":845,"name":846},"fuchs","Petra Fuchs",{"slug":848,"name":849},"gari","Sarah Gari",{"slug":851,"name":852},"gast","Gast",{"slug":854,"name":855},"graf","Johannes Graf",{"slug":857,"name":858},"grammlich","Daniela Grammlich",{"slug":860,"name":861},"guthardt","Sabrina Guthardt",{"slug":863,"name":864},"haeussler","Johannes Häussler",{"slug":866,"name":867},"hammann","Daniel Hammann",{"slug":869,"name":870},"heetel","Julian Heetel",{"slug":872,"name":873},"heft","Florian Heft",{"slug":875,"name":876},"heib","Sebastian Heib",{"slug":878,"name":879},"heisler","Ida Heisler",{"slug":881,"name":882},"helm","Patrick Helm",{"slug":884,"name":885},"herbold","Michael Herbold",{"slug":887,"name":888},"hofmann","Peter Hofmann",{"slug":890,"name":891},"hopf","Florian Hopf",{"slug":893,"name":894},"jaud","Alina Jaud",{"slug":896,"name":897},"jayasinghe","Robin De Silva Jayasinghe",{"slug":899,"name":900},"jbuch","Jonathan Buch",{"slug":902,"name":903},"junghanss","Gitta Junghanß",{"slug":905,"name":906},"kadyietska","Khrystyna Kadyietska",{"slug":908,"name":909},"kannegiesser","Marc Kannegiesser",{"slug":911,"name":912},"karoly","Robert Károly",{"slug":914,"name":915},"karrasz","Katja Arrasz-Schepanski",{"slug":917,"name":918},"kaufmann","Florian Kaufmann",{"slug":920,"name":921},"kesler","Mike Kesler",{"slug":923,"name":924},"kirchgaessner","Bettina Kirchgäßner",{"slug":926,"name":927},"klem","Yannic Klem",{"slug":929,"name":930},"klenk","Timo Klenk",{"slug":9,"name":932},"Tobias Knell",{"slug":934,"name":935},"knoll","Anna-Lena Knoll",{"slug":937,"name":938},"knorre","Matthias Knorre",{"slug":940,"name":941},"koenig","Melanie König",{"slug":943,"name":944},"kraft","Thomas Kraft",{"slug":946,"name":947},"krupicka","Florian Krupicka",{"slug":949,"name":950},"kuehn","Christian Kühn",{"slug":952,"name":953},"lange","Christian Lange",{"slug":955,"name":956},"larrasz","Luca Arrasz",{"slug":958,"name":959},"leist","Sascha Leist",{"slug":961,"name":962},"lihs","Michael Lihs",{"slug":964,"name":965},"linsin","David Linsin",{"slug":967,"name":968},"maniyar","Christian Maniyar",{"slug":970,"name":971},"martin","Björnie",{"slug":973,"name":974},"martin-koch","Martin Koch",{"slug":976,"name":977},"matt","Tobias Matt",{"slug":979,"name":980},"mennerich","Christian Mennerich",{"slug":982,"name":983},"menz","Alexander Menz",{"slug":985,"name":986},"meseck","Frederick Meseck",{"slug":988,"name":989},"messner","Oliver Messner",{"slug":991,"name":992},"michael-ploed","Michael Plöd",{"slug":994,"name":995},"mies","Marius Mies",{"slug":997,"name":998},"mihai","Alina Mihai",{"slug":1000,"name":1001},"moeller","Jörg Möller",{"slug":1003,"name":1004},"mohr","Rebecca Mohr",{"slug":1006,"name":1007},"moretti","David Moretti",{"slug":1009,"name":1010},"mueller","Sven Müller",{"slug":1012,"name":1013},"muessig","Alexander Müssig",{"slug":1015,"name":1016},"neupokoev","Grigory Neupokoev",{"slug":1018,"name":1019},"nussbaecher","Carmen Nussbächer",{"slug":1021,"name":1022},"ochs","Pascal Ochs",{"slug":1024,"name":1025},"oelhoff","Jan Oelhoff",{"slug":1027,"name":1028},"oengel","Yasin Öngel",{"slug":1030,"name":1031},"oezsoy","Enis Özsoy",{"slug":1033,"name":1034},"posch","Maya Posch",{"slug":1036,"name":1037},"ralfmueller","Ralf Müller",{"slug":1039,"name":1039},"redakteur",{"slug":1041,"name":1042},"reich","Michael Reich",{"slug":1044,"name":1045},"reinhard","Karl-Ludwig Reinhard",{"slug":1047,"name":1048},"rmueller","Rebecca Müller",{"slug":1050,"name":1051},"rosum","Jan Rosum",{"slug":1053,"name":1053},"rueckert",{"slug":1055,"name":1056},"ruessel","Sascha Rüssel",{"slug":1058,"name":1059},"sauter","Moritz Sauter",{"slug":1061,"name":1062},"schaefer","Julian Schäfer",{"slug":1064,"name":1065},"scherer","Petra Scherer",{"slug":1067,"name":1068},"schlicht","Anne Schlicht",{"slug":1070,"name":1071},"schmidt","Jürgen Schmidt",{"slug":1073,"name":1074},"schneider","Tobias Schneider",{"slug":1076,"name":1077},"seber","Benjamin Seber",{"slug":1079,"name":1080},"sommer","Marc Sommer",{"slug":1082,"name":1083},"speaker-fels","Jakob Fels",{"slug":1085,"name":1086},"speaker-gierke","Oliver Gierke",{"slug":1088,"name":1089},"speaker-krupa","Malte Krupa",{"slug":1091,"name":1092},"speaker-mader","Jochen Mader",{"slug":1094,"name":1095},"speaker-meusel","Tim Meusel",{"slug":1097,"name":1098},"speaker-milke","Oliver Milke",{"slug":1100,"name":1101},"speaker-paluch","Mark Paluch",{"slug":1103,"name":1104},"speaker-schad","Jörg Schad",{"slug":1106,"name":1107},"speaker-schalanda","Jochen Schalanda",{"slug":1109,"name":1110},"speaker-schauder","Jens Schauder",{"slug":1112,"name":1113},"speaker-unterstein","Johannes Unterstein",{"slug":1115,"name":1116},"speaker-wolff","Eberhard Wolff",{"slug":1118,"name":1119},"speaker-zoerner","Stefan Zörner",{"slug":1121,"name":1122},"stefan-belger","Stefan Belger",{"slug":1124,"name":1125},"steinegger","Roland Steinegger",{"slug":1127,"name":1128},"stern","sternchen synyx",{"slug":1130,"name":1130},"synyx",{"slug":1132,"name":1133},"szulc","Mateusz Szulc",{"slug":1135,"name":1136},"tamara","Tamara Tunczinger",{"slug":1138,"name":1139},"theuer","Tobias Theuer",{"slug":1141,"name":1142},"thieme","Sandra Thieme",{"slug":1144,"name":1145},"thies-clasen","Marudor",{"slug":1147,"name":1148},"toernstroem","Olle Törnström",{"slug":1150,"name":1151},"ullinger","Max Ullinger",{"slug":1153,"name":1154},"ulrich","Stephan Ulrich",{"slug":1156,"name":1157},"wagner","Stefan Wagner",{"slug":1159,"name":1160},"weigel","Andreas Weigel",{"slug":1162,"name":1163},"werner","Fabian Werner",{"slug":1165,"name":1166},"wolke","Sören Wolke",["Reactive",1168],{"$scookieConsent":1169,"$ssite-config":1171},{"functional":1170,"analytics":1170},false,{"_priority":1172,"env":1176,"name":1177,"url":1178},{"name":1173,"env":1174,"url":1175},-10,-15,0,"production","nuxt-app","https://synyx.de",["Set"],["ShallowReactive",1181],{"category-limited":-1,"authors":-1},"/blog/tags/limited"]