{"id":337,"date":"2020-07-25T10:40:07","date_gmt":"2020-07-25T10:40:07","guid":{"rendered":"https:\/\/serkanseker.com\/?p=337"},"modified":"2021-01-13T11:49:48","modified_gmt":"2021-01-13T11:49:48","slug":"xamarin-forms-carouselview","status":"publish","type":"post","link":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/","title":{"rendered":"Xamarin.Forms CarouselView"},"content":{"rendered":"\n<p>With CarouselView, item collections are displayed in a floating order. By default, items are listed in a horizontal position. <\/p>\n\n\n\n<p>Our motivation in this post, get first five news from <a href=\"https:\/\/newsapi.org\/\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">newsapi<\/a> and show it in a CarouselView. Also, I used PancakeView plugin to make beautiful design. You can learn <a aria-label=\"undefined (opens in a new tab)\" href=\"https:\/\/serkanseker.com\/how-to-use-pancakeview-in-xamarin\/\" target=\"_blank\" rel=\"noreferrer noopener\">how to use PancakeView<\/a> from my recent post.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Download Plugins<\/h2>\n\n\n\n<p>You need the following plugins for the project:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Newtonsoft.Json <\/strong>-&gt; to deserialize JSON files.<\/li><li><strong>Xamarin.Forms.PancakeView<\/strong> -&gt; for design<\/li><\/ul>\n\n\n\n<p>You can use download plugins using Nuget Package Manager. I also recommend you to check out <a href=\"https:\/\/serkanseker.com\/top-5-useful-plugins-in-xamarin\/\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">Top 5 Useful Plugins in Xamarin<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Get API Key<\/h2>\n\n\n\n<p>In this project I use News API because it is free. You need API key to query. Register <a href=\"https:\/\/newsapi.org\/\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">this site<\/a> and get an API key easily.<\/p>\n\n\n\n<p>This is an example query to understand this documentation. Open the following link in a browser. You can see the result.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#047;&#047;newsapi.org\/v2\/everything?q=bitcoin&amp;from=2020-06-25&amp;sortBy=publishedAt&amp;apiKey=0aa6acdc93314fa380708f86053e21fc<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Model Class<\/h2>\n\n\n\n<p>After open the above link you will see a JSON file. To convert this file to C# class use <a aria-label=\"undefined (opens in a new tab)\" href=\"http:\/\/jsonutils.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">jsonutils.com<\/a>. You can paste JSON file and convert it easily.<\/p>\n\n\n\n<p>After doing the translation, create a folder named <strong>Model<\/strong> in the project and add a class named <strong>News.cs<\/strong> to this folder. Paste the class you just translated from the site into this class.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">    public class Source\n    {\n        public string id { get; set; }\n        public string name { get; set; }\n    }\n\n    public class Article\n    {\n        public Source source { get; set; }\n        public string author { get; set; }\n        public string title { get; set; }\n        public string description { get; set; }\n        public string url { get; set; }\n        public string urlToImage { get; set; }\n        public DateTime publishedAt { get; set; }\n        public string content { get; set; }\n    }\n\n    public class News\n    {\n        public string status { get; set; }\n        public int totalResults { get; set; }\n        public IList&lt;Article&gt; articles { get; set; }\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Service Class<\/h2>\n\n\n\n<p>Add a <strong>Services<\/strong> folder to the project and create a class named <strong>NewsAPI.cs<\/strong> in this folder. There will be methods in this class that make the API query.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">    class NewsAPI\n    {\n        public const string NEWS_API_KEY = &quot;WRITE YOUR API KEY HERE&quot;;\n        public const string BASE_URL = &quot;https:\/\/newsapi.org\/v2\/everything?q={0}&amp;from={1}&amp;sortBy=publishedAt&amp;apiKey={2}&quot;;\n\n        public static async Task&lt;News&gt; GetNewsAsync(string query)\n        {\n            string date = DateTime.Now.ToString(&quot;yyyy-MM-dd h:mm tt&quot;);\n            News news = new News();\n            string url = String.Format(BASE_URL, query, date, NEWS_API_KEY);\n            HttpClient httpClient = new HttpClient();\n            var response = await httpClient.GetAsync(url);\n            if (response.IsSuccessStatusCode)\n            {\n                var content = await response.Content.ReadAsStringAsync();\n                var posts = JsonConvert.DeserializeObject&lt;News&gt;(content);\n                news = posts;\n            }\n            return news;\n        }\n    }<\/code><\/pre>\n\n\n\n<p>After write the class codes add namespaces that necessary. You will see the required namespaces already.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CarouselView ViewModel Class<\/h2>\n\n\n\n<p>To fully implement the MVVM architecture, add the <strong>ViewModels <\/strong>folder to the project and create a class named <strong>NewsViewModel.cs<\/strong> in this folder.<\/p>\n\n\n\n<p>Put the answers from the API in a List&lt;&gt; named ArticleList. This list will be the ItemSource of CarouselView.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">   public class NewsViewModel : INotifyPropertyChanged\n    {\n        private List&lt;Article&gt; articleList { get; set; }\n        public List&lt;Article&gt; ArticleList\n        {\n            get\n            {\n                return articleList;\n            }\n\n            set\n            {\n                if (value != articleList)\n                {\n                    articleList = value;\n                    OnPropertyChanged();\n                }\n            }\n        }\n\n        public event PropertyChangedEventHandler PropertyChanged;\n\n        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)\n        {\n            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\n        }\n        public NewsViewModel()\n        {\n            Task.Run(APIAsync);\n        }\n        private async Task APIAsync()\n        {\n            var news = await NewsAPI.GetNewsAsync(&quot;Android&quot;);\n            List&lt;Article&gt; articleList = new List&lt;Article&gt;();\n            for (int i = 0; i &lt; 5; i++)\n            {\n                articleList.Add(new Article\n                {\n                    title= news.articles[i].title,\n                    description=news.articles[i].description,\n                    urlToImage=news.articles[i].urlToImage,\n                    url=news.articles[i].url\n                }\n                );\n            }\n            ArticleList = articleList;\n        }\n    }<\/code><\/pre>\n\n\n\n<p>APIAsync method gets news about &#8220;Android&#8221;. Assigns the title, description, urlToImage and url variables to the list with a for loop.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CarouselView Page<\/h2>\n\n\n\n<p>Now add a <strong>Views<\/strong> folder to the project and add a ContentPage named <strong>NewsPage.xaml<\/strong>. Create a CarouselView and IndicatorView in ContentPage. Set the ArticleList as ItemSource property of CarouselView. <\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-markup\">    &lt;ContentPage.Content&gt;\n        &lt;StackLayout&gt;\n                &lt;CarouselView ItemsSource=&quot;{Binding ArticleList}&quot; IndicatorView=&quot;IndicatorView&quot;&gt;\n                &lt;CarouselView.ItemTemplate&gt;\n                    &lt;DataTemplate&gt;\n                        &lt;StackLayout &gt;\n                            &lt;Frame HorizontalOptions=&quot;Center&quot; VerticalOptions=&quot;CenterAndExpand&quot;&gt;\n                                    &lt;StackLayout&gt;\n                                        &lt;pancakeview:PancakeView BackgroundColor=&quot;#d4d6c8&quot; HeightRequest=&quot;600&quot; WidthRequest=&quot;300&quot; CornerRadius=&quot;20&quot; HorizontalOptions=&quot;Center&quot; VerticalOptions=&quot;Center&quot;&gt;\n                                        &lt;ScrollView&gt;\n                                            &lt;Grid&gt;\n                                                &lt;Grid.RowDefinitions&gt;\n                                                    &lt;RowDefinition Height=&quot;Auto&quot;\/&gt;\n                                                    &lt;RowDefinition Height=&quot;Auto&quot;\/&gt;\n                                                    &lt;RowDefinition Height=&quot;Auto&quot;\/&gt;\n                                                    &lt;RowDefinition Height=&quot;Auto&quot;\/&gt;\n                                                &lt;\/Grid.RowDefinitions&gt;\n                                                &lt;pancakeview:PancakeView  Grid.Row=&quot;0&quot; BackgroundColor=&quot;Transparent&quot; CornerRadius=&quot;20,20,0,0&quot; HorizontalOptions=&quot;Center&quot; VerticalOptions=&quot;Center&quot;&gt;\n                                                    &lt;Image Source=&quot;{Binding urlToImage}&quot;  HeightRequest=&quot;200&quot; WidthRequest=&quot;300&quot; Aspect=&quot;AspectFill&quot; HorizontalOptions=&quot;CenterAndExpand&quot; VerticalOptions=&quot;CenterAndExpand&quot;  \/&gt;\n                                                &lt;\/pancakeview:PancakeView&gt;\n                                                &lt;Label Grid.Row=&quot;1&quot; Text=&quot;{Binding title}&quot; TextColor=&quot;Black&quot; FontSize=&quot;20&quot; FontAttributes=&quot;Bold&quot; HorizontalOptions=&quot;StartAndExpand&quot; VerticalOptions=&quot;CenterAndExpand&quot; Margin=&quot;10&quot;  \/&gt;\n                                                &lt;Label Grid.Row=&quot;2&quot; Text=&quot;{Binding description}&quot;  TextColor=&quot;Black&quot; FontSize=&quot;15&quot; HorizontalOptions=&quot;Center&quot; VerticalOptions=&quot;Center&quot; Margin=&quot;10&quot;   \/&gt;\n                                                &lt;Label Grid.Row=&quot;3&quot; Text=&quot;{Binding url}&quot;  TextColor=&quot;#1235F5&quot;  FontSize=&quot;15&quot; HorizontalOptions=&quot;Center&quot; VerticalOptions=&quot;Center&quot; Margin=&quot;10&quot; TextDecorations=&quot;Underline&quot; FontAttributes=&quot;Italic&quot; \/&gt;\n                                            &lt;\/Grid&gt;\n                                        &lt;\/ScrollView&gt;\n                                        &lt;\/pancakeview:PancakeView&gt;\n                                    &lt;\/StackLayout&gt;\n                            &lt;\/Frame&gt;\n                        &lt;\/StackLayout&gt;\n                    &lt;\/DataTemplate&gt;\n                &lt;\/CarouselView.ItemTemplate&gt;\n            &lt;\/CarouselView&gt;\n            &lt;IndicatorView x:Name=&quot;IndicatorView&quot;\n                       IndicatorSize=&quot;7&quot;\n                       IndicatorsShape=&quot;Circle&quot;\n                       IndicatorColor=&quot;Black&quot;\n                       SelectedIndicatorColor=&quot;DarkGray&quot;\n                       HorizontalOptions=&quot;Center&quot;\n                       VerticalOptions=&quot;Center&quot; Margin=&quot;0,0,0,20&quot;&gt;\n            &lt;\/IndicatorView&gt;\n        &lt;\/StackLayout&gt;\n    &lt;\/ContentPage.Content&gt;<\/code><\/pre>\n\n\n\n<p>Add necessary namespaces for PancakeView and others if exists. <\/p>\n\n\n\n<p>To link the ViewModel class to the page, add the following line in the constructor method of the <strong>NewsPage.xaml.cs<\/strong> class.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">        public NewsPage()\n        {\n            InitializeComponent();\n            this.BindingContext = new NewsViewModel();\n        }<\/code><\/pre>\n\n\n\n<p>Finally, set <strong>MainPage <\/strong>in the <strong>App.xaml.cs<\/strong> class before launching the application. And of course add the required namespaces.<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-csharp\">        public App()\n        {\n            InitializeComponent();\n            MainPage = new NewsPage();\n        }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">CarouselView Output<\/h2>\n\n\n\n<p>Everything is ok. You can run the application and see how it looks.<\/p>\n\n\n\n<div class=\"wp-block-image has-lightbox\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/serkanseker.com\/wp-content\/uploads\/2020\/07\/Xamarin.Forms-CarouselView-2.gif\" alt=\"Xamarin.Forms-CarouselView\" class=\"wp-image-437\" width=\"264\" height=\"540\"\/><\/figure><\/div>\n\n\n\n<p>Your screen will look different from this because the AppShell structure is used here. You can check our <a href=\"https:\/\/serkanseker.com\/using-shell-in-xamarin\/\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">Using Shell in Xamarin.Forms<\/a> article to learn how to use AppShell.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Our motivation in this post, get first five news from newsapi and show it in a CarouselView. Also, I used PancakeView plugin to make beautiful design. You can learn how to use PancakeView from my recent post.<\/p>\n","protected":false},"author":1,"featured_media":210,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"categories":[572,21,39],"tags":[22,14,23,570,18,4,5],"class_list":["post-337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nuget","category-xamarin","category-xamarin-forms","tag-carouselview","tag-design","tag-indicatorview","tag-nuget","tag-pancakeview","tag-xamarin","tag-xamarin-forms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Xamarin.Forms CarouselView - Serkan Seker TR<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Xamarin.Forms CarouselView - Serkan Seker TR\" \/>\n<meta property=\"og:description\" content=\"Our motivation in this post, get first five news from newsapi and show it in a CarouselView. Also, I used PancakeView plugin to make beautiful design. You can learn how to use PancakeView from my recent post.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/\" \/>\n<meta property=\"og:site_name\" content=\"Serkan Seker TR\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-25T10:40:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-13T11:49:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1\" \/>\n\t<meta property=\"og:image:height\" content=\"1\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"serkanadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"serkanadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/\"},\"author\":{\"name\":\"serkanadmin\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\"},\"headline\":\"Xamarin.Forms CarouselView\",\"datePublished\":\"2020-07-25T10:40:07+00:00\",\"dateModified\":\"2021-01-13T11:49:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/\"},\"wordCount\":464,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg\",\"keywords\":[\"CarouselView\",\"design\",\"IndicatorView\",\"NuGet\",\"pancakeview\",\"xamarin\",\"xamarin.forms\"],\"articleSection\":[\"NuGet\",\"Xamarin\",\"Xamarin.Forms\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/\",\"url\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/\",\"name\":\"Xamarin.Forms CarouselView - Serkan Seker TR\",\"isPartOf\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg\",\"datePublished\":\"2020-07-25T10:40:07+00:00\",\"dateModified\":\"2021-01-13T11:49:48+00:00\",\"author\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\"},\"breadcrumb\":{\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#primaryimage\",\"url\":\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg\",\"contentUrl\":\"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/serkanseker.com\/tr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Xamarin.Forms CarouselView\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#website\",\"url\":\"https:\/\/serkanseker.com\/tr\/\",\"name\":\"Serkan Seker TR\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/serkanseker.com\/tr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5\",\"name\":\"serkanadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g\",\"caption\":\"serkanadmin\"},\"sameAs\":[\"https:\/\/serkanseker.com\"],\"url\":\"https:\/\/serkanseker.com\/tr\/author\/serkanadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Xamarin.Forms CarouselView - Serkan Seker TR","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Xamarin.Forms CarouselView - Serkan Seker TR","og_description":"Our motivation in this post, get first five news from newsapi and show it in a CarouselView. Also, I used PancakeView plugin to make beautiful design. You can learn how to use PancakeView from my recent post.","og_url":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/","og_site_name":"Serkan Seker TR","article_published_time":"2020-07-25T10:40:07+00:00","article_modified_time":"2021-01-13T11:49:48+00:00","og_image":[{"url":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg","width":1,"height":1,"type":"image\/jpeg"}],"author":"serkanadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"serkanadmin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#article","isPartOf":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/"},"author":{"name":"serkanadmin","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5"},"headline":"Xamarin.Forms CarouselView","datePublished":"2020-07-25T10:40:07+00:00","dateModified":"2021-01-13T11:49:48+00:00","mainEntityOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/"},"wordCount":464,"commentCount":0,"image":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#primaryimage"},"thumbnailUrl":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg","keywords":["CarouselView","design","IndicatorView","NuGet","pancakeview","xamarin","xamarin.forms"],"articleSection":["NuGet","Xamarin","Xamarin.Forms"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/","url":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/","name":"Xamarin.Forms CarouselView - Serkan Seker TR","isPartOf":{"@id":"https:\/\/serkanseker.com\/tr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#primaryimage"},"image":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#primaryimage"},"thumbnailUrl":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg","datePublished":"2020-07-25T10:40:07+00:00","dateModified":"2021-01-13T11:49:48+00:00","author":{"@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5"},"breadcrumb":{"@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#primaryimage","url":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg","contentUrl":"https:\/\/serkanseker.com\/tr\/wp-content\/uploads\/2020\/12\/Xamarin.Forms-CarouselView.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/serkanseker.com\/tr\/xamarin-forms-carouselview\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/serkanseker.com\/tr\/"},{"@type":"ListItem","position":2,"name":"Xamarin.Forms CarouselView"}]},{"@type":"WebSite","@id":"https:\/\/serkanseker.com\/tr\/#website","url":"https:\/\/serkanseker.com\/tr\/","name":"Serkan Seker TR","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/serkanseker.com\/tr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/841fcc69b248e08e52c4190963caeaf5","name":"serkanadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/serkanseker.com\/tr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/93ddc1f96117bf468976afe93a077eda77de96bcdb48dc749903598a546786a3?s=96&d=mm&r=g","caption":"serkanadmin"},"sameAs":["https:\/\/serkanseker.com"],"url":"https:\/\/serkanseker.com\/tr\/author\/serkanadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts\/337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/comments?post=337"}],"version-history":[{"count":0,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/posts\/337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/media\/210"}],"wp:attachment":[{"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/media?parent=337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/categories?post=337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serkanseker.com\/tr\/wp-json\/wp\/v2\/tags?post=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}