Android kullanıcıların işlerini kolaylaştırmak ve görselliği ilgi çekici yapmak adına bazı ara yüz(UI) kütüphaneleri kullanılmaktadır. Bu arayüz kütüphanelerinden biride “Pull to Refresh” dir.
“Pull to Refresh” özeliği, uygulandığı arayüzde çekip bırakma hareketi yapılarak sayfanın yenilenme işlemini sağlayan UI kütüphanesidir. Gmail, Facebook, Twitter gibi birçok android uygulamaları, bu özelliği kullanmaktadır. Pull to Refresh işlemini merak ettiğinizi duyar gibiyim. Uygulanması çok basit bir kütüphane..:) Bu özeliği arayüzüne uygulamanızı kolaylaştırmak için, sizin için bu makaleyi yazdım.Bu makalemde arayüzle ilgili birçok Android yazılımcılarının kullandığı “Pull to Refresh” olayını listview arayüz bileşeniyle birlikte kullanmayı örnekleyeceğim.
İlk öncelikle “actionbarpulltorefresh” adlı kütüphanemizi yükleyelim. Android Studio Ide’sinde oluşturmuş olduğum projemde, proje ana dizi->app->build.gradle dosyasını açıp, dependencies kodları arasına compile ‘com.github.chrisbanes.actionbarpulltorefresh:library:+’ kodunu ekliyip, menude Build sekmesinden Rebuild Project yaptık.
build.gradle kodları:
1 2 3 4 5 6 |
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+' compile 'com.android.support:support-v4:21.0.3' } |
activity_main.xml kodları:
1 |
<!--?xml version="1.0" encoding="utf-8"?--> |
MainActivity.java kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package com.tugbaustundag.pull_to_refresh; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Listview olusturuldugu ve Pull to refresh in uygulandıgı, ListViewActivity sınıfına yönlendirme yaptık ListViewActivity listViewActivity = new ListViewActivity(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.realtabcontent, listViewActivity); transaction.commit(); } } |
ListViewActivity.java kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
package com.tugbaustundag.pull_to_refresh; import java.util.ArrayList; import java.util.List; import uk.co.senab.actionbarpulltorefresh.library.ActionBarPullToRefresh; import uk.co.senab.actionbarpulltorefresh.library.PullToRefreshLayout; import uk.co.senab.actionbarpulltorefresh.library.listeners.OnRefreshListener; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; public class ListViewActivity extends ListFragment implements OnRefreshListener { int i=0; private PullToRefreshLayout mPullToRefreshLayout; ArrayAdapter adapter; List list; @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //Listview göstermek amaçlı, ArrayList 'e Item'lar atadık list=new ArrayList(); int no=1; for(int i=0;i<5;i++) { list.add("Item No :"+no++); } ViewGroup viewGroup = (ViewGroup) view; //PullToRefreshLayout sınıfını tanımladık.PullToRefreshLayout sınıfı refresh olayını yapan kütüphanedir mPullToRefreshLayout = new PullToRefreshLayout(viewGroup.getContext()); //PullToRefreshLayout sınıfıyla ilgili ilgili ayarları yapıyoruz. ActionBarPullToRefresh.from(getActivity()) //Fragment ViewGroup icine PullToRefreshLayout^'u dahil ettik .insertLayoutInto(viewGroup) .theseChildrenArePullable(android.R.id.list, android.R.id.empty) .listener(this) .setup(mPullToRefreshLayout); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //onViewCreated metodunun içinde, ArrayList 'te oluşturdgumuz listeyi ArrayAdapter'a atadık. adapter=new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1, list); setListAdapter(adapter); setListShownNoAnimation(true);//Listelemedeki Yükleniyor animasyonunu pasif yaptım } @Override public void onRefreshStarted(View view) { //Listeleme alanını çekip bıraktığınızda ,listeleme alananında Round progress bar(Yuvarlak yükleniyor iconu) // görmek istiyosanız, bu kodun yorum taglerini kaldırmalısınız // setListShown(false); //Listeleme alanı çekip bıraktığınızda, yeni verinin gösterilmesini sağlayan kod bölümü new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { try { //Loading işleminden sonra yeni bir data gösterilmesi işlemi icin ,listview Item eklendi Thread.sleep(5000); int itemNo=list.size(); itemNo++; list.add("New Item No :"+itemNo); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); adapter.notifyDataSetChanged(); // Notify PullToRefreshLayout sınıfının yenilenme işleminin bittiğini anlatan metodu set ettim mPullToRefreshLayout.setRefreshComplete(); // Üstte "setListShown(false)" kodunu aktif yaptıysanız,asagıdaki kodunda yorum tag lerini kaldırmalısınız /* if (getView() != null) { setListShown(true); }*/ } }.execute(); } } |
Cialis should always be taken under the guidance of a certified physician, take Lovegra alone and enjoy the health benefits of this miraculous drug. Some Erectile Dysfunction drugs are not suitable for men with certain medical conditions and which contributes to achieving a stable erection, Viagra is able to provide you with the following advantages.
Gerçekten mükemmel bir anlatım olmuş. Bu tarz konularda yazdığınız makalelerle Türk yazılım geliştiricilerine sağladığınız fayda tartışılamaz. Başarılarınızın devamını dilerim Tuğba Hanım 🙂
Merhabalar;
Öncelikle Paylaşımlarınız Çok Faydalı Teşekkür Ederim.
webview ile yapılan bir uygulamaya pull to refresh özelliğini nasıl ekleyebilirmiyiz. Ekleyebiliyorsak Nasıl Ekleyebilirim. Şimdiden Teşekkür Ederim.
Merhaba,
Android Webview Swipe To Refresh adlı makaleden faydalanabilirsiniz. Swipe To Refresh işlemi Pull to Refresh ile aynı eylemi yapar.
http://androiddhina.blogspot.com.tr/2015/02/android-webview-swipe-to-referesh.html
Tuğba Hanım Merhaba
Paylaştığınız Link İçin Teşekkür Ederim Fakat Linki Paylaştığınız Günden Beridir Uğraşıyorum. Ama Bu Kodlarla Sayfa Yenileme İşlemi Olmadı Yada Yapamadım. Kendi Projeme Entegre Ettim Olmadı Sadece Gönderdiğiniz Kodlarla Yeni Proje Oluşturup Denedim Lakin OLmadı. Şu Anda Aşağıdaki Kodların Altı Kırmızı Çizili Hata Olduğu Belirtiliyor. Yardımcı Olabilirseniz Sevinirim.
android:paddingBottom=”@dimen/activity_vertical_margin” android:paddingLeft=”@dimen/activity_horizontal_margin” android:paddingRight=”@dimen/activity_horizontal_margin” android:paddingTop=”@dimen/activity_vertical_margin”
Merhabalar android de yeniyim ama karsilastigim hatalara gore cevap vericem activity genislikleri ile sikintiniz var activity dizayninizi kontrol ediniz ayrıca alt+enter tuşu ile hatayi giderebilirsiniz bende misafirim gzerken gördüm cevaplayim dedim iyi çalışmalar.