Creating Xamarin Android SwipeRefreshLayout Using ListView Items
Let’s start,
Step 1: Open Visual Studio->New Project->Templates->Visual C#->Android->Blank App. Give the Project Name and Project Location.
Step 2 : Go to Solution Explorer-> Project Name-> Components, right click to Get More Components and the new dialog box opens. This dialog box is required to search the Support V4, add the Android Support Library V4 Packages.
Step 3: To open Solution Explorer, go to -> Project Name->Resources->layout ->Main.axml, click to open Design View and the code, given below,
<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipeRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/btnaddnewmech" android:layout_alignParentTop="true"> <ListView android:minWidth="25px" android:minHeight="25px" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/listView1" /> </android.support.v4.widget.SwipeRefreshLayout>
Step 4: After Design view creation, open Solution Explorer-> Project Name->MainActivity.cs, add the namespaces, given below,
C# Code :
using Android.Support.V4.Widget; using Android.Graphics; using System.Collections.Generic; using System.ComponentModel; using Java.Lang;
Step 5: To create the new variables for RefreshLayout and ListView, one can use the code, given below,
private SwipeRefreshLayout refreshLayout; private ListView listitem;
Step 6: Go to Oncreate() to declare the list view id and Listview<string>Variable.
Step 7: Next step is to create one List String Item and then add the list view adapter.
C# Code :
listitem = FindViewById < ListView > (Resource.Id.listView1); List < string > items = new List < string > (); items.Add("C#"); items.Add("ASP.NET"); items.Add("JAVA"); items.Add("MVC"); items.Add("Swift"); items.Add("JQuery"); items.Add("ASP"); items.Add("JSP"); items.Add("C"); items.Add("PHP"); items.Add("Ruby"); ArrayAdapter < string > liststring = new ArrayAdapter < string > (this, Android.Resource.Layout.SimpleExpandableListItem1, items); listitem.Adapter = liststring;
Step 8 : After Listview declaration, assign Refresh Layout variables and colors. Here, create one more method for Refresh event. This event is declared after Oncreate().
C# Code :
refreshLayout = FindViewById < SwipeRefreshLayout > (Resource.Id.swipeRefreshLayout); refreshLayout.SetColorSchemeColors(Color.Red, Color.Green, Color.Blue, Color.Yellow); refreshLayout.Refresh += RefreshLayout_Refresh;
Step 9 : Declare RefreshLayout_refresh method. This method is working in the background process of the layout. Once the work completes, it will terminate the work.
C# Code :
private void RefreshLayout_Refresh(object sender, EventArgs e) { //Data Refresh Place BackgroundWorker work = new BackgroundWorker(); work.DoWork += Work_DoWork; work.RunWorkerCompleted += Work_RunWorkerCompleted; work.RunWorkerAsync(); } private void Work_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { refreshLayout.Refreshing = false; } private void Work_DoWork(object sender, DoWorkEventArgs e) { Thread.Sleep(1000); }
Step 10: Press F5 or build and run the Application.
Download Source Code Here
Finally, we successfully created Xamarin Android SwipeRefreshLayout with ListView items.
![Anbu Mani](https://xmonkeys360.com/wp-content/uploads/2018/01/Anbu.jpg)
Anbu Mani(Microsoft MVP) is working Software Engineer in Changepond Technologies, Chennai, Tamilnadu, India. Having 4+ years of experience and his area of interest is C#, ASP.NET, SQL Server, Xamarin and Xamarin Forms,Azure…etc