{"id":32481,"date":"2025-10-22T08:41:07","date_gmt":"2025-10-22T05:41:07","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32481"},"modified":"2025-10-22T08:41:07","modified_gmt":"2025-10-22T05:41:07","slug":"android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/","title":{"rendered":"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma"},"content":{"rendered":"<p><body><\/p>\n<h2>Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma<\/h2>\n<p>Android P (API 28) ile birlikte Material Design bile\u015fen k\u00fct\u00fcphanesine eklenen Chips ve ChipGroup, mobil uygulama geli\u015ftiricilerine kullan\u0131c\u0131 aray\u00fczlerini daha etkile\u015fimli, d\u00fczenli ve sezgisel hale getirme imkan\u0131 sunmu\u015ftur. Bu makale, Chips ve ChipGroup&#8217;un ne oldu\u011funu, farkl\u0131 t\u00fcrlerini, nas\u0131l kullan\u0131ld\u0131klar\u0131n\u0131, \u00f6zelle\u015ftirme se\u00e7eneklerini ve en iyi uygulama y\u00f6ntemlerini detayl\u0131 bir \u015fekilde inceleyecektir. Amac\u0131m\u0131z, geli\u015ftiricilere bu g\u00fc\u00e7l\u00fc bile\u015fenleri projelerinde etkin bir \u015fekilde kullanmalar\u0131 i\u00e7in kapsaml\u0131 bir rehber sunmakt\u0131r.<\/p>\n<h3>Chips&#8217;in Evrimi ve Amac\u0131<\/h3>\n<p>Material Design, Google taraf\u0131ndan geli\u015ftirilen ve kullan\u0131c\u0131 aray\u00fcz\u00fc tasar\u0131m\u0131na y\u00f6nelik kapsaml\u0131 bir k\u0131lavuz ve bile\u015fen sistemidir. Amac\u0131, platformlar aras\u0131 tutarl\u0131, estetik ve i\u015flevsel deneyimler yaratmakt\u0131r. Android P ile tan\u0131t\u0131lan Chips, Material Design&#8217;\u0131n bu felsefesini yans\u0131tan \u00f6nemli bir UI \u00f6\u011fesidir. Geleneksel olarak etiketler, filtreler veya se\u00e7imler gibi verileri g\u00f6stermek i\u00e7in kullan\u0131lan basit metin g\u00f6r\u00fcn\u00fcmleri veya d\u00fc\u011fmeler yerine, Chips daha zengin bir etkile\u015fim ve g\u00f6rsel geri bildirim sunar.<\/p>\n<p>Chips, kullan\u0131c\u0131lar\u0131n bir dizi se\u00e7ene\u011fi filtrelemesine, giri\u015f yapmas\u0131na, eylem ger\u00e7ekle\u015ftirmesine veya bilgi g\u00f6r\u00fcnt\u00fclemesine olanak tan\u0131yan kompakt, etkile\u015fimli \u00f6\u011felerdir. Genellikle k\u00fc\u00e7\u00fck, yuvarlak kenarl\u0131 dikd\u00f6rtgenler \u015feklinde g\u00f6r\u00fcn\u00fcrler ve metin, simge ve bazen de bir kapatma d\u00fc\u011fmesi i\u00e7erebilirler. Bu bile\u015fenler, karma\u015f\u0131k verileri basitle\u015ftirmek, kullan\u0131c\u0131 girdilerini d\u00fczenlemek ve kullan\u0131labilir se\u00e7enekleri net bir \u015fekilde sunmak i\u00e7in idealdir. \u00d6zellikle s\u0131n\u0131rl\u0131 ekran alan\u0131na sahip mobil cihazlarda, bilgiyi verimli bir \u015fekilde sunmak ve kullan\u0131c\u0131 etkile\u015fimini optimize etmek a\u00e7\u0131s\u0131ndan b\u00fcy\u00fck bir avantaj sa\u011flarlar.<\/p>\n<h3>Chip Bile\u015fenine Yak\u0131ndan Bak\u0131\u015f<\/h3>\n<p>Bir Chip, tek bir \u00f6zniteli\u011fi, se\u00e7imi veya eylemi temsil eden k\u00fc\u00e7\u00fck bir UI \u00f6\u011fesidir. Kullan\u0131m amac\u0131na g\u00f6re d\u00f6rt ana t\u00fcre ayr\u0131l\u0131rlar: Action Chips, Filter Chips, Input Chips ve Choice Chips. Her bir t\u00fcr, belirli bir etkile\u015fim senaryosu i\u00e7in tasarlanm\u0131\u015ft\u0131r ve farkl\u0131 g\u00f6rsel ve davran\u0131\u015fsal \u00f6zelliklere sahiptir.<\/p>\n<h4>Action Chips<\/h4>\n<p>Action Chips, kullan\u0131c\u0131ya bir eylem tetikleme imkan\u0131 sunan \u00e7iplerdir. Genellikle birincil bir i\u00e7erik alan\u0131nda veya bir grup ilgili eylemi temsil etmek i\u00e7in kullan\u0131l\u0131rlar. \u00d6rne\u011fin, bir uygulamada &#8220;Haritada G\u00f6ster&#8221;, &#8220;Payla\u015f&#8221; veya &#8220;Ara&#8221; gibi h\u0131zl\u0131 eylemleri tetiklemek i\u00e7in kullan\u0131labilirler. Bir simge ve metin i\u00e7erebilirler ancak genellikle kapatma simgesi i\u00e7ermezler, \u00e7\u00fcnk\u00fc ama\u00e7lar\u0131 bir bilgiyi kald\u0131rmak de\u011fil, bir eylemi ba\u015flatmakt\u0131r.<\/p>\n<pre><code>\n<com.google.android.material.chip.Chip\n    android:id=\"@+id\/action_chip\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"Payla\u015f\"\n    app:chipIcon=\"@drawable\/ic_share\"\n    style=\"@style\/Widget.Material3.Chip.Action\" \/>\n<\/code><\/pre>\n<h4>Filter Chips<\/h4>\n<p>Filter Chips, kullan\u0131c\u0131n\u0131n bir i\u00e7erik grubunu filtrelemesine olanak tan\u0131r. Bu \u00e7ipler, se\u00e7ilebilir durumdad\u0131r; yani kullan\u0131c\u0131 taraf\u0131ndan se\u00e7ilebilir veya se\u00e7imi kald\u0131r\u0131labilirler. Se\u00e7ildi\u011finde g\u00f6rsel olarak farkl\u0131la\u015f\u0131rlar (\u00f6rne\u011fin, farkl\u0131 bir arka plan rengi veya bir onay i\u015fareti ile). Bir listeden \u00f6\u011feleri filtrelemek, kategorileri se\u00e7mek veya arama sonu\u00e7lar\u0131n\u0131 daraltmak i\u00e7in idealdirler. Bir Filter Chip se\u00e7ildi\u011finde, genellikle bir onay i\u015fareti simgesi g\u00f6r\u00fcn\u00fcr.<\/p>\n<pre><code>\n<com.google.android.material.chip.Chip\n    android:id=\"@+id\/filter_chip\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"Pop\u00fcler\"\n    android:checkable=\"true\"\n    style=\"@style\/Widget.Material3.Chip.Filter\" \/>\n<\/code><\/pre>\n<h4>Input Chips<\/h4>\n<p>Input Chips, kullan\u0131c\u0131 giri\u015fini temsil eder ve genellikle bir metin giri\u015f alan\u0131yla birlikte kullan\u0131l\u0131r. Bu \u00e7ipler, bir kullan\u0131c\u0131n\u0131n bir alana girdi\u011fi bilgiyi (\u00f6rne\u011fin, e-posta adresleri, etiketler veya anahtar kelimeler) g\u00f6stermek i\u00e7in kullan\u0131l\u0131r. Genellikle bir metin, bir avatar veya simge ve bir kapatma simgesi i\u00e7erirler, b\u00f6ylece kullan\u0131c\u0131 giri\u015fi kolayca kald\u0131r\u0131labilir. Kullan\u0131c\u0131 bir metin kutusuna bir de\u011fer girdi\u011finde ve onaylad\u0131\u011f\u0131nda (\u00f6rne\u011fin, Enter tu\u015funa basarak), bu de\u011fer bir Input Chip olarak g\u00f6sterilir.<\/p>\n<pre><code>\n<com.google.android.material.chip.Chip\n    android:id=\"@+id\/input_chip\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"john.doe@example.com\"\n    app:chipIcon=\"@drawable\/ic_person\"\n    app:closeIconVisible=\"true\"\n    style=\"@style\/Widget.Material3.Chip.Input\" \/>\n<\/code><\/pre>\n<h4>Choice Chips<\/h4>\n<p>Choice Chips, bir grup i\u00e7inde tek bir se\u00e7ene\u011fin se\u00e7ilmesine izin verir. Radyo d\u00fc\u011fmelerine benzer \u015fekilde \u00e7al\u0131\u015f\u0131rlar, ancak g\u00f6rsel olarak daha modern ve esnektirler. Bir gruptaki Choice Chips&#8217;ten yaln\u0131zca biri ayn\u0131 anda se\u00e7ili olabilir. Bu \u00e7ipler, kullan\u0131c\u0131n\u0131n bir listeden yaln\u0131zca bir \u00f6\u011fe se\u00e7mesi gereken durumlarda (\u00f6rne\u011fin, boyut se\u00e7imi, \u00f6deme y\u00f6ntemi se\u00e7imi) kullan\u0131l\u0131r. Se\u00e7ildi\u011finde g\u00f6rsel olarak farkl\u0131la\u015f\u0131rlar ve genellikle bir onay i\u015fareti simgesi g\u00f6sterirler.<\/p>\n<pre><code>\n<com.google.android.material.chip.Chip\n    android:id=\"@+id\/choice_chip_1\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"K\u00fc\u00e7\u00fck\"\n    android:checkable=\"true\"\n    style=\"@style\/Widget.Material3.Chip.Choice\" \/>\n\n<com.google.android.material.chip.Chip\n    android:id=\"@+id\/choice_chip_2\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"Orta\"\n    android:checkable=\"true\"\n    style=\"@style\/Widget.Material3.Chip.Choice\" \/>\n<\/code><\/pre>\n<h3>ChipGroup: Chip&#8217;leri Y\u00f6netmenin Ak\u0131ll\u0131 Yolu<\/h3>\n<p>Tek ba\u015f\u0131na Chips, belirli etkile\u015fimler i\u00e7in kullan\u0131\u015fl\u0131d\u0131r, ancak genellikle birden fazla Chip&#8217;in bir arada d\u00fczenlenmesi ve y\u00f6netilmesi gerekir. \u0130\u015fte bu noktada ChipGroup devreye girer. ChipGroup, bir veya daha fazla Chip&#8217;i bir araya getiren ve onlar\u0131 d\u00fczenli bir \u015fekilde hizalayan bir ViewGroup&#8217;tur. \u00d6zellikle yatay veya dikey olarak birden fazla Chip&#8217;i sarmalama (wrap) yetene\u011fi sayesinde, farkl\u0131 ekran boyutlar\u0131na uyum sa\u011flayan esnek aray\u00fczler olu\u015fturmak i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<h4>Neden ChipGroup&#8217;a \u0130htiya\u00e7 Duyar\u0131z?<\/h4>\n<p>ChipGroup, Chips&#8217;i manuel olarak d\u00fczenleme karma\u015fas\u0131n\u0131 ortadan kald\u0131r\u0131r. Chips&#8217;i bir LinearLayout veya GridLayout i\u00e7ine yerle\u015ftirmek yerine, ChipGroup kullanmak, \u00e7iplerin otomatik olarak sar\u0131lmas\u0131n\u0131 (wrap) ve aralar\u0131nda bo\u015fluk b\u0131rak\u0131lmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, \u00f6zellikle Filter Chips ve Choice Chips gibi se\u00e7ilebilir \u00e7ipler i\u00e7in, tekli se\u00e7im veya \u00e7oklu se\u00e7im mant\u0131\u011f\u0131n\u0131 kolayca y\u00f6netmek i\u00e7in yerle\u015fik \u00f6zellikler sunar. Bu, geli\u015ftiricilerin kod yazma y\u00fck\u00fcn\u00fc azalt\u0131r ve daha tutarl\u0131 bir kullan\u0131c\u0131 deneyimi sa\u011flar.<\/p>\n<h4>Temel \u00d6zellikleri ve Avantajlar\u0131<\/h4>\n<p>*   <strong>Otomatik D\u00fczenleme:<\/strong> Chips&#8217;i otomatik olarak sarar ve uygun bo\u015fluklarla d\u00fczenler.<br \/>\n*   <strong>Se\u00e7im Y\u00f6netimi:<\/strong> <code>singleSelection<\/code> \u00f6zelli\u011fi ile bir grupta yaln\u0131zca bir Chip&#8217;in se\u00e7ilmesini sa\u011flayabilir.<br \/>\n*   <strong>Bo\u015fluk Kontrol\u00fc:<\/strong> <code>chipSpacingHorizontal<\/code> ve <code>chipSpacingVertical<\/code> \u00f6znitelikleri ile \u00e7ipler aras\u0131ndaki yatay ve dikey bo\u015fluklar\u0131 kolayca ayarlayabilirsiniz.<br \/>\n*   <strong>Eri\u015filebilirlik:<\/strong> Varsay\u0131lan olarak eri\u015filebilirlik \u00f6zelliklerini destekler, bu da uygulaman\u0131z\u0131n daha kapsay\u0131c\u0131 olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Uygulama Ad\u0131mlar\u0131: Chips ve ChipGroup&#8217;u Projenize Entegre Etme<\/h3>\n<p>Chips ve ChipGroup&#8217;u kullanmak i\u00e7in \u00f6ncelikle projenize Material Design bile\u015fen k\u00fct\u00fcphanesini eklemeniz gerekir.<\/p>\n<h4>Gerekli Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Ekleme<\/h4>\n<p><code>build.gradle (Module: app)<\/code> dosyan\u0131za a\u015fa\u011f\u0131daki ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 ekleyin:<\/p>\n<pre><code>\ndependencies {\n    \/\/ ... di\u011fer ba\u011f\u0131ml\u0131l\u0131klar\n    implementation 'com.google.android.material:material:1.x.x' \/\/ x.x g\u00fcncel versiyon olmal\u0131\n}\n<\/code><\/pre>\n<p>Ard\u0131ndan projenizi senkronize edin. Material Design 3 (MD3) kullan\u0131yorsan\u0131z, versiyon <code>1.6.0<\/code> ve \u00fczeri olmal\u0131d\u0131r.<\/p>\n<h4>XML ile Chip Tan\u0131mlama<\/h4>\n<p>Bir <code>Chip<\/code> bile\u015feni, Layout dosyan\u0131zda do\u011frudan tan\u0131mlanabilir:<\/p>\n<pre><code>\n<com.google.android.material.chip.Chip\n    android:id=\"@+id\/my_chip\"\n    android:layout_width=\"wrap_content\"\n    android:layout_height=\"wrap_content\"\n    android:text=\"\u00d6rnek Chip\"\n    app:chipIcon=\"@drawable\/ic_info\"\n    app:closeIconVisible=\"true\"\n    android:checkable=\"true\"\n    android:clickable=\"true\"\n    style=\"@style\/Widget.Material3.Chip.Filter\" \/>\n<\/code><\/pre>\n<h4>XML ile ChipGroup Tan\u0131mlama<\/h4>\n<p>Bir <code>ChipGroup<\/code> i\u00e7ine birden fazla <code>Chip<\/code> yerle\u015ftirebilirsiniz:<\/p>\n<pre><code>\n<com.google.android.material.chip.ChipGroup\n    android:id=\"@+id\/my_chip_group\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    app:singleLine=\"false\"\n    app:singleSelection=\"false\"\n    app:chipSpacingHorizontal=\"8dp\"\n    app:chipSpacingVertical=\"8dp\">\n\n    <com.google.android.material.chip.Chip\n        android:id=\"@+id\/chip1\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Etiket 1\"\n        android:checkable=\"true\"\n        style=\"@style\/Widget.Material3.Chip.Filter\" \/>\n\n    <com.google.android.material.chip.Chip\n        android:id=\"@+id\/chip2\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Etiket 2\"\n        android:checkable=\"true\"\n        style=\"@style\/Widget.Material3.Chip.Filter\" \/>\n\n    <com.google.android.material.chip.Chip\n        android:id=\"@+id\/chip3\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"Etiket 3\"\n        android:checkable=\"true\"\n        style=\"@style\/Widget.Material3.Chip.Filter\" \/>\n\n<\/com.google.android.material.chip.ChipGroup>\n<\/code><\/pre>\n<h4>Chip ve ChipGroup \u00d6znitelikleri (Attributes) Detayl\u0131 \u0130nceleme<\/h4>\n<p>Chips ve ChipGroup&#8217;un davran\u0131\u015f\u0131n\u0131 ve g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc \u00f6zelle\u015ftirmek i\u00e7in bir\u00e7ok \u00f6znitelik mevcuttur:<\/p>\n<p>*   <strong><code>android:text<\/code><\/strong>: Chip \u00fczerinde g\u00f6sterilecek metni belirler.<br \/>\n*   <strong><code>app:chipIcon<\/code><\/strong>: Chip&#8217;in sol taraf\u0131nda g\u00f6sterilecek simgeyi belirler.<br \/>\n*   <strong><code>app:closeIcon<\/code><\/strong>: Chip&#8217;in sa\u011f taraf\u0131nda g\u00f6sterilecek kapatma simgesini belirler. Genellikle Input Chips i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong><code>app:closeIconVisible<\/code><\/strong>: Kapatma simgesinin g\u00f6r\u00fcn\u00fcr olup olmad\u0131\u011f\u0131n\u0131 belirler (boolean).<br \/>\n*   <strong><code>app:chipBackgroundColor<\/code><\/strong>: Chip&#8217;in arka plan rengini belirler.<br \/>\n*   <strong><code>app:chipStrokeColor<\/code><\/strong>: Chip&#8217;in kenarl\u0131k rengini belirler.<br \/>\n*   <strong><code>app:chipStrokeWidth<\/code><\/strong>: Chip&#8217;in kenarl\u0131k kal\u0131nl\u0131\u011f\u0131n\u0131 belirler.<br \/>\n*   <strong><code>app:chipMinHeight<\/code><\/strong>: Chip&#8217;in minimum y\u00fcksekli\u011fini belirler.<br \/>\n*   <strong><code>app:chipCornerRadius<\/code><\/strong>: Chip&#8217;in k\u00f6\u015fe yuvarlama yar\u0131\u00e7ap\u0131n\u0131 belirler.<br \/>\n*   <strong><code>android:checkable<\/code><\/strong>: Chip&#8217;in se\u00e7ilebilir olup olmad\u0131\u011f\u0131n\u0131 belirler (boolean). Filter ve Choice Chips i\u00e7in <code>true<\/code> olmal\u0131d\u0131r.<br \/>\n*   <strong><code>android:clickable<\/code><\/strong>: Chip&#8217;in t\u0131klanabilir olup olmad\u0131\u011f\u0131n\u0131 belirler (boolean). <code>android:checkable<\/code> <code>true<\/code> ise bu da <code>true<\/code> olmal\u0131d\u0131r.<br \/>\n*   <strong><code>style<\/code><\/strong>: Material Design taraf\u0131ndan sa\u011flanan \u00f6nceden tan\u0131mlanm\u0131\u015f stillerden birini uygulaman\u0131z\u0131 sa\u011flar (\u00f6rn. <code>@style\/Widget.Material3.Chip.Action<\/code>).<\/p>\n<p><strong>ChipGroup \u00d6zellikleri:<\/strong><\/p>\n<p>*   <strong><code>app:singleLine<\/code><\/strong>: Chips&#8217;in tek bir sat\u0131rda m\u0131 yoksa birden fazla sat\u0131ra m\u0131 yay\u0131laca\u011f\u0131n\u0131 belirler (boolean). <code>false<\/code> ise \u00e7ipler otomatik olarak alt sat\u0131ra ge\u00e7er.<br \/>\n*   <strong><code>app:singleSelection<\/code><\/strong>: ChipGroup i\u00e7indeki Chips&#8217;ten yaln\u0131zca birinin ayn\u0131 anda se\u00e7ilebilir olup olmad\u0131\u011f\u0131n\u0131 belirler (boolean). <code>true<\/code> ise, bir radyo grubu gibi davran\u0131r.<br \/>\n*   <strong><code>app:chipSpacingHorizontal<\/code><\/strong>: Chips aras\u0131ndaki yatay bo\u015flu\u011fu belirler (dimension).<br \/>\n*   <strong><code>app:chipSpacingVertical<\/code><\/strong>: Chips aras\u0131ndaki dikey bo\u015flu\u011fu belirler (dimension).<\/p>\n<h3>Programatik Yakla\u015f\u0131m: Dinamik Chips Olu\u015fturma ve Y\u00f6netme<\/h3>\n<p>Chips&#8217;i sadece XML ile de\u011fil, ayn\u0131 zamanda kod arac\u0131l\u0131\u011f\u0131yla dinamik olarak olu\u015fturabilir ve y\u00f6netebilirsiniz. Bu, \u00f6zellikle verilerin dinamik olarak y\u00fcklendi\u011fi veya kullan\u0131c\u0131 girdilerine g\u00f6re \u00e7iplerin olu\u015fturulmas\u0131 gereken senaryolarda kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h4>Kotlin\/Java ile Chip Olu\u015fturma<\/h4>\n<pre><code>\n\/\/ Kotlin\nval chip = Chip(context)\nchip.text = \"Dinamik Chip\"\nchip.chipIcon = ContextCompat.getDrawable(context, R.drawable.ic_dynamic)\nchip.isCheckable = true\nchip.isClickable = true\nchip.setOnClickListener {\n    \/\/ Chip t\u0131klama olay\u0131n\u0131 y\u00f6net\n}\n\n\/\/ Java\nChip chip = new Chip(context);\nchip.setText(\"Dinamik Chip\");\nchip.setChipIcon(ContextCompat.getDrawable(context, R.drawable.ic_dynamic));\nchip.setCheckable(true);\nchip.setClickable(true);\nchip.setOnClickListener(v -> {\n    \/\/ Chip t\u0131klama olay\u0131n\u0131 y\u00f6net\n});\n<\/code><\/pre>\n<h4>ChipGroup&#8217;a Dinamik Chip Ekleme\/\u00c7\u0131karma<\/h4>\n<p>Olu\u015fturdu\u011funuz \u00e7ipleri bir <code>ChipGroup<\/code>&#8216;a ekleyebilirsiniz:<\/p>\n<pre><code>\n\/\/ Kotlin\nval chipGroup = findViewById<ChipGroup>(R.id.my_chip_group)\nchipGroup.addView(chip)\n\n\/\/ Java\nChipGroup chipGroup = findViewById(R.id.my_chip_group);\nchipGroup.addView(chip);\n<\/code><\/pre>\n<p>Bir Chip&#8217;i kald\u0131rmak i\u00e7in:<\/p>\n<pre><code>\n\/\/ Kotlin\nchipGroup.removeView(chip)\n\n\/\/ Java\nchipGroup.removeView(chip);\n<\/code><\/pre>\n<h4>T\u0131klama ve Se\u00e7im Olaylar\u0131n\u0131 Y\u00f6netme<\/h4>\n<p><strong>Tekil Chip T\u0131klamalar\u0131:<\/strong> Her bir Chip i\u00e7in ayr\u0131 ayr\u0131 <code>setOnClickListener<\/code> veya <code>setOnCloseIconClickListener<\/code> tan\u0131mlayabilirsiniz.<\/p>\n<pre><code>\n\/\/ Kotlin\nchip.setOnClickListener { view ->\n    val clickedChip = view as Chip\n    Toast.makeText(context, \"${clickedChip.text} t\u0131kland\u0131!\", Toast.LENGTH_SHORT).show()\n}\n\nchip.setOnCloseIconClickListener {\n    chipGroup.removeView(chip)\n    Toast.makeText(context, \"${chip.text} kald\u0131r\u0131ld\u0131!\", Toast.LENGTH_SHORT).show()\n}\n\n\/\/ Java\nchip.setOnClickListener(view -> {\n    Chip clickedChip = (Chip) view;\n    Toast.makeText(context, clickedChip.getText() + \" t\u0131kland\u0131!\", Toast.LENGTH_SHORT).show();\n});\n\nchip.setOnCloseIconClickListener(v -> {\n    chipGroup.removeView(chip);\n    Toast.makeText(context, chip.getText() + \" kald\u0131r\u0131ld\u0131!\", Toast.LENGTH_SHORT).show();\n});\n<\/code><\/pre>\n<p><strong>ChipGroup Se\u00e7im De\u011fi\u015fiklikleri (<code>OnCheckedChangeListener<\/code>):<\/strong> \u00d6zellikle Filter veya Choice Chips gruplar\u0131nda, hangi \u00e7iplerin se\u00e7ildi\u011fini izlemek i\u00e7in <code>setOnCheckedChangeListener<\/code> kullanabilirsiniz.<\/p>\n<pre><code>\n\/\/ Kotlin\nchipGroup.setOnCheckedChangeListener { group, checkedId ->\n    val selectedChipIds = group.checkedChipIds \/\/ Se\u00e7ili \u00e7iplerin ID'leri\n    selectedChipIds.forEach { id ->\n        val selectedChip = group.findViewById<Chip>(id)\n        Toast.makeText(context, \"${selectedChip.text} se\u00e7ildi!\", Toast.LENGTH_SHORT).show()\n    }\n}\n\n\/\/ Java\nchipGroup.setOnCheckedChangeListener((group, checkedId) -> {\n    List<Integer> selectedChipIds = group.getCheckedChipIds();\n    for (Integer id : selectedChipIds) {\n        Chip selectedChip = group.findViewById(id);\n        Toast.makeText(context, selectedChip.getText() + \" se\u00e7ildi!\", Toast.LENGTH_SHORT).show();\n    }\n});\n<\/code><\/pre>\n<p><strong>Se\u00e7ili Chip&#8217;leri Alma:<\/strong> <code>chipGroup.checkedChipIds<\/code> \u00f6zelli\u011fi, se\u00e7ili t\u00fcm \u00e7iplerin kaynak kimliklerinin (ID) bir listesini d\u00f6nd\u00fcr\u00fcr. E\u011fer <code>singleSelection<\/code> <code>true<\/code> ise, bu liste en fazla bir \u00f6\u011fe i\u00e7erecektir.<\/p>\n<h3>Chips ve ChipGroup&#8217;u \u00d6zelle\u015ftirme ve Stilleme<\/h3>\n<p>Material Design bile\u015fenleri, uygulaman\u0131z\u0131n genel temas\u0131na uyum sa\u011flayacak \u015fekilde kolayca \u00f6zelle\u015ftirilebilir. Chips&#8217;in g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc de\u011fi\u015ftirmek i\u00e7in \u00e7e\u015fitli yollar vard\u0131r:<\/p>\n<p>1.  <strong>Material Design Temalar\u0131:<\/strong> Uygulaman\u0131z\u0131n genel Material Design temas\u0131 (\u00f6rne\u011fin, <code>Theme.Material3.DayNight.NoActionBar<\/code>) Chips&#8217;in varsay\u0131lan g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc etkiler. Tema renkleriniz, tipografiniz ve \u015fekilleriniz otomatik olarak Chips&#8217;e uygulan\u0131r.<br \/>\n2.  <strong>\u00d6n Tan\u0131ml\u0131 Stiller:<\/strong> Yukar\u0131da belirtildi\u011fi gibi, Material Design bile\u015fen k\u00fct\u00fcphanesi Action, Filter, Input ve Choice Chips i\u00e7in \u00f6nceden tan\u0131mlanm\u0131\u015f stiller sunar (\u00f6rn. <code>@style\/Widget.Material3.Chip.Action<\/code>). Bu stiller, \u00e7iplerin temel g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc ve davran\u0131\u015f\u0131n\u0131 belirler.<br \/>\n3.  <strong>\u00d6zel Stiller Olu\u015fturma:<\/strong> Kendi \u00f6zel stilinizi tan\u0131mlayarak Chips&#8217;in g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc daha ayr\u0131nt\u0131l\u0131 bir \u015fekilde kontrol edebilirsiniz. Bunu <code>styles.xml<\/code> dosyan\u0131zda yapabilirsiniz:<\/p>\n<pre><code>\n    <style name=\"CustomChipStyle\" parent=\"Widget.Material3.Chip.Filter\">\n        <item name=\"chipBackgroundColor\">@color\/my_custom_chip_background<\/item>\n        <item name=\"android:textColor\">@color\/my_custom_chip_text_color<\/item>\n        <item name=\"chipStrokeColor\">@color\/my_custom_chip_stroke_color<\/item>\n        <item name=\"chipStrokeWidth\">2dp<\/item>\n        <item name=\"chipCornerRadius\">16dp<\/item>\n        <item name=\"chipIconTint\">@color\/my_custom_icon_tint<\/item>\n        <item name=\"closeIconTint\">@color\/my_custom_close_icon_tint<\/item>\n        <item name=\"android:textAppearance\">@style\/TextAppearance.Material3.LabelLarge<\/item>\n    <\/style>\n    <\/code><\/pre>\n<p>    Bu stili bir Chip&#8217;e uygulamak i\u00e7in:<\/p>\n<pre><code>\n    <com.google.android.material.chip.Chip\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:text=\"\u00d6zel Stil\"\n        style=\"@style\/CustomChipStyle\" \/>\n    <\/code><\/pre>\n<p>    Renkleri ve yaz\u0131 tiplerini <code>colors.xml<\/code> ve <code>themes.xml<\/code> dosyalar\u0131n\u0131zda tan\u0131mlayarak uygulaman\u0131z\u0131n genel renk paletine ve tipografisine uyum sa\u011flayabilirsiniz. \u00d6rne\u011fin, <code>chipBackgroundColor<\/code> i\u00e7in bir renk se\u00e7ici (selector) tan\u0131mlayarak, Chip&#8217;in se\u00e7ili veya se\u00e7ili de\u011filken farkl\u0131 renklere sahip olmas\u0131n\u0131 sa\u011flayabilirsiniz:<\/p>\n<pre><code>\n    <!-- colors.xml -->\n    <selector xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\">\n        <item android:state_checked=\"true\" android:color=\"@color\/selected_chip_background\"\/>\n        <item android:color=\"@color\/default_chip_background\"\/>\n    <\/selector>\n    <\/code><\/pre>\n<p>    Bu <code>selector<\/code>&#8216;\u0131 <code>chipBackgroundColor<\/code> \u00f6zniteli\u011fine atayabilirsiniz.<\/p>\n<h3>En \u0130yi Uygulama Y\u00f6ntemleri ve Kullan\u0131m \u0130pu\u00e7lar\u0131<\/h3>\n<p>Chips ve ChipGroup, g\u00fc\u00e7l\u00fc ara\u00e7lar olsa da, do\u011fru kullan\u0131ld\u0131klar\u0131nda maksimum fayda sa\u011flarlar.<\/p>\n<h4>Eri\u015filebilirlik (Accessibility)<\/h4>\n<p>*   <strong>\u0130\u00e7erik A\u00e7\u0131klamalar\u0131:<\/strong> Chips i\u00e7in anlaml\u0131 <code>contentDescription<\/code> sa\u011flamak, ekran okuyucu kullanan kullan\u0131c\u0131lar i\u00e7in \u00f6nemlidir. \u00d6zellikle simge i\u00e7eren veya kapatma simgesi olan \u00e7iplerde bu daha da kritik hale gelir.<br \/>\n*   <strong>Dokunma Alan\u0131:<\/strong> Chips&#8217;in dokunma alan\u0131 (touch target) en az 48&#215;48 dp olmal\u0131d\u0131r. Material Design bile\u015fenleri genellikle bunu varsay\u0131lan olarak sa\u011flar, ancak \u00f6zel stillerle oynarken dikkatli olun.<br \/>\n*   <strong>Renk Kontrast\u0131:<\/strong> Metin ve simge renklerinin arka plan rengiyle yeterli kontrast oran\u0131na sahip oldu\u011fundan emin olun.<\/p>\n<h4>Performans<\/h4>\n<p>*   <strong>Dinamik Olu\u015fturma:<\/strong> \u00c7ok say\u0131da Chip&#8217;i dinamik olarak olu\u015ftururken ve bir <code>ChipGroup<\/code>&#8216;a eklerken performans\u0131 g\u00f6z \u00f6n\u00fcnde bulundurun. \u00d6zellikle uzun listelerde veya s\u0131k g\u00fcncellenen aray\u00fczlerde, \u00e7ip olu\u015fturma ve ekleme i\u015flemlerini optimize etmek \u00f6nemlidir. Gerekirse bir <code>RecyclerView<\/code> i\u00e7inde <code>ChipGroup<\/code> kullanmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz, ancak bu karma\u015f\u0131kl\u0131\u011f\u0131 art\u0131rabilir.<br \/>\n*   <strong>Gereksiz Yeniden \u00c7izimleri \u00d6nleme:<\/strong> \u00c7ip durumlar\u0131n\u0131 de\u011fi\u015ftirirken (se\u00e7me, kald\u0131rma vb.) sadece etkilenen \u00e7ipleri g\u00fcncelleyin, t\u00fcm grubu yeniden \u00e7izmekten ka\u00e7\u0131n\u0131n.<\/p>\n<h4>Kullan\u0131c\u0131 Deneyimi (UX) \u0130pu\u00e7lar\u0131<\/h4>\n<p>*   <strong>Tutarl\u0131l\u0131k:<\/strong> Uygulaman\u0131z genelinde Chips&#8217;in g\u00f6r\u00fcn\u00fcm ve davran\u0131\u015f\u0131nda tutarl\u0131 olun. Ayn\u0131 t\u00fcrdeki \u00e7ipler her zaman ayn\u0131 \u015fekilde g\u00f6r\u00fcnmeli ve i\u015flev g\u00f6rmelidir.<br \/>\n*   <strong>Netlik:<\/strong> Chip metinleri k\u0131sa, \u00f6z ve anla\u015f\u0131l\u0131r olmal\u0131d\u0131r. Kullan\u0131c\u0131 neyi se\u00e7ti\u011fini veya hangi eylemi tetikleyece\u011fini net bir \u015fekilde anlamal\u0131d\u0131r.<br \/>\n*   <strong>Geri Bildirim:<\/strong> Kullan\u0131c\u0131 bir Chip ile etkile\u015fim kurdu\u011funda (t\u0131klama, se\u00e7me), g\u00f6rsel bir geri bildirim ald\u0131\u011f\u0131ndan emin olun (\u00f6rn. renk de\u011fi\u015fimi, onay i\u015fareti).<br \/>\n*   <strong>S\u0131n\u0131rl\u0131 Se\u00e7enekler:<\/strong> \u00c7ok fazla se\u00e7ene\u011fin oldu\u011fu durumlarda Chips yerine ba\u015fka bir UI bile\u015feni (\u00f6rne\u011fin, Spinner veya Dialog) kullanmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz. Chips, genellikle s\u0131n\u0131rl\u0131 ve y\u00f6netilebilir bir se\u00e7enek grubunu temsil etmek i\u00e7in en iyisidir.<\/p>\n<h4>Ne Zaman Kullan\u0131lmal\u0131, Ne Zaman Ka\u00e7\u0131n\u0131lmal\u0131?<\/h4>\n<p><strong>Kullan\u0131m Senaryolar\u0131:<\/strong><\/p>\n<p>*   <strong>Filtreleme ve Kategorizasyon:<\/strong> \u00dcr\u00fcn listelerini, arama sonu\u00e7lar\u0131n\u0131 veya haber ak\u0131\u015flar\u0131n\u0131 filtrelemek i\u00e7in.<br \/>\n*   <strong>Etiketleme (Tagging):<\/strong> Bir \u00f6\u011feye anahtar kelimeler veya etiketler atamak i\u00e7in.<br \/>\n*   <strong>Se\u00e7imler:<\/strong> Kullan\u0131c\u0131n\u0131n birden fazla veya tek bir se\u00e7enek aras\u0131ndan se\u00e7im yapmas\u0131 gereken durumlarda (\u00f6rn. beden se\u00e7imi, ilgi alanlar\u0131).<br \/>\n*   <strong>Giri\u015f Alanlar\u0131:<\/strong> Kullan\u0131c\u0131 taraf\u0131ndan girilen e-posta adresleri, ki\u015filer veya anahtar kelimeler gibi girdileri g\u00f6stermek ve kolayca kald\u0131rmak i\u00e7in.<br \/>\n*   <strong>H\u0131zl\u0131 Eylemler:<\/strong> Bir \u00f6\u011feyle ilgili h\u0131zl\u0131 eylemleri (\u00f6rn. &#8220;Ar\u015fivle&#8221;, &#8220;Favorilere Ekle&#8221;) sunmak i\u00e7in.<\/p>\n<p><strong>Ka\u00e7\u0131n\u0131lmas\u0131 Gereken Durumlar:<\/strong><\/p>\n<p>*   <strong>\u00c7ok Fazla Metin:<\/strong> Chip metinleri k\u0131sa olmal\u0131d\u0131r. Uzun c\u00fcmleler veya paragraflar i\u00e7in uygun de\u011fildir.<br \/>\n*   <strong>Karma\u015f\u0131k Etkile\u015fimler:<\/strong> Chips, karma\u015f\u0131k veri giri\u015fleri veya \u00e7ok ad\u0131ml\u0131 i\u015flemler i\u00e7in tasarlanmam\u0131\u015ft\u0131r. Basit, tek ad\u0131ml\u0131k etkile\u015fimler i\u00e7in idealdir.<br \/>\n*   <strong>Gezinme \u00d6\u011feleri:<\/strong> Uygulaman\u0131n ana gezinme \u00f6\u011feleri (\u00f6rn. Bottom Navigation Bar, Navigation Drawer) i\u00e7in Chips yerine bu amaca \u00f6zel bile\u015fenler kullan\u0131lmal\u0131d\u0131r. Chips daha \u00e7ok i\u00e7erik i\u00e7i veya ba\u011flama dayal\u0131 etkile\u015fimler i\u00e7indir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Android P ile hayat\u0131m\u0131za giren Chips ve ChipGroup, Material Design felsefesinin modern ve etkile\u015fimli kullan\u0131c\u0131 aray\u00fczleri olu\u015fturma konusundaki g\u00fcc\u00fcn\u00fc bir kez daha kan\u0131tlam\u0131\u015ft\u0131r. Bu bile\u015fenler, karma\u015f\u0131k bilgileri basitle\u015ftirmek, kullan\u0131c\u0131 girdilerini d\u00fczenlemek ve \u00e7e\u015fitli etkile\u015fim senaryolar\u0131n\u0131 verimli bir \u015fekilde y\u00f6netmek i\u00e7in geli\u015ftiricilere esnek ve g\u00fc\u00e7l\u00fc bir ara\u00e7 seti sunar. Farkl\u0131 Chip t\u00fcrlerini do\u011fru senaryolarda kullanarak, ChipGroup ile bunlar\u0131 d\u00fczenli bir \u015fekilde y\u00f6neterek ve Material Design y\u00f6nergelerine uygun \u015fekilde \u00f6zelle\u015ftirerek, kullan\u0131c\u0131 dostu ve estetik a\u00e7\u0131dan ho\u015f mobil uygulamalar geli\u015ftirebilirsiniz. Unutmay\u0131n, iyi bir kullan\u0131c\u0131 deneyimi, do\u011fru bile\u015fenlerin do\u011fru yerde ve do\u011fru \u015fekilde kullan\u0131lmas\u0131yla ba\u015flar. Chips ve ChipGroup, bu yolculukta size \u00f6nemli bir avantaj sa\u011flayacakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma\nAndroid P (API 28) ile birlikte Material Design bile\u015fen k\u00fct\u00fcphanesine","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-32481","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma\" \/>\n<meta property=\"og:description\" content=\"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma Android P (API 28) ile birlikte Material Design bile\u015fen k\u00fct\u00fcphanesine\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-22T05:41:07+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma\",\"datePublished\":\"2025-10-22T05:41:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/\"},\"wordCount\":2389,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/\",\"name\":\"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-22T05:41:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/","og_locale":"tr_TR","og_type":"article","og_title":"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma","og_description":"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma Android P (API 28) ile birlikte Material Design bile\u015fen k\u00fct\u00fcphanesine","og_url":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-22T05:41:07+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"13 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma","datePublished":"2025-10-22T05:41:07+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/"},"wordCount":2389,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/","url":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/","name":"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-22T05:41:07+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/android-p-chips-ve-chipgroup-ile-modern-kullanici-arayuzleri-olusturma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Android P: Chips ve ChipGroup ile Modern Kullan\u0131c\u0131 Aray\u00fczleri Olu\u015fturma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32481","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=32481"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32481\/revisions"}],"predecessor-version":[{"id":32482,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32481\/revisions\/32482"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32481"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32481"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32481"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}