কীভাবে অ্যান্ড্রয়েড পুল টু রিফ্রেশ বাস্তবায়ন করবেন


433

টুইটার (অফিসিয়াল অ্যাপ্লিকেশন) এর মতো অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিতে, আপনি যখন কোনও তালিকাভিউর মুখোমুখি হন তখন সামগ্রীটি রিফ্রেশ করার জন্য আপনি এটিকে নীচে টানতে পারেন (এবং এটি প্রকাশের সময় ফিরে আসবে)।

আমি ভাবছি যে এটি কার্যকর করার জন্য আপনার মতে সবচেয়ে ভাল উপায় কী?

কিছু সম্ভাবনা যা আমি ভাবতে পারি:

  1. লিস্টভিউয়ের শীর্ষে থাকা একটি আইটেম - তবে আমি মনে করি না যে তালিকাভিউতে অ্যানিমেশন সহ আইটেম পজিশন 1 (0-ভিত্তিক) এ ফিরে স্ক্রোল করা একটি সহজ কাজ।
  2. লিস্টভিউয়ের বাইরে অন্য একটি দৃশ্য - তবে টান দেওয়ার সময় আমার তালিকার অবস্থানটি নীচে নিয়ে যাওয়ার যত্ন নেওয়া দরকার, এবং আমি নিশ্চিত নই যে তালিকার তালিকায় টানা-ছোঁয়া এখনও তালিকার তালিকায় থাকা আইটেমগুলি সত্যিই স্ক্রোল করে কিনা তা আমরা সনাক্ত করতে পারি কিনা তা নিশ্চিত নই।

কোন সুপারিশ?

পিএস আমি অবাক হই যখন অফিশিয়াল টুইটার অ্যাপ সোর্স কোড প্রকাশিত হয়। এটি প্রকাশিত হবে বলে উল্লেখ করা হয়েছে, তবে 6 মাস কেটে গেছে এবং তখন থেকে আমরা এটির বিষয়ে শুনিনি।


এই কার্যকারিতাটি কি গতিশীলভাবে তৈরি টেবিললআউটটিতে প্রয়োগ করা যেতে পারে। দয়া করে সহায়তা করুন .....
অরুণ বদোল

github.com / فروটরেঞ্জার / পুলটোরফ্রেশলিস্টভিউ খনিটির আরেকটি বাস্তবায়ন। মসৃণ এবং মাল্টি টাচ সমর্থন।
চ্যাংওয়ে ইয়াও

6
সম্পর্কিত: "পুল টু রিফ্রেশ": অ্যান্ড্রয়েডে একটি অ্যান্টিআইআই প্যাটার্ন হ'ল একটি নিবন্ধ যা যুক্তি করে যে এই ইউআই এমন কিছু নয় যা অ্যান্ড্রয়েডে ব্যবহার করা উচিত এবং এর যথাযথতা সম্পর্কে প্রচুর আলোচনার জন্ম দিয়েছে।
blahdiblah

29
কারও কাছে গুগলকে জানানো উচিত কারণ অ্যান্ড্রয়েডের জন্য জিমেইলের সর্বশেষতম সংস্করণটি এই "অ্যান্টি প্যাটার্ন" ব্যবহার করে।
নিক

4
রিফ্রেশ করতে টানুন আইওএস এবং অ্যান্ড্রয়েডে একটি স্ট্যান্ডার্ড গৃহীত প্যাটার্ন (এবং কিছুক্ষণের জন্য হয়ে গেছে) এটি খুব স্বাভাবিক, তাই এই অ্যান্টি-প্যাটার্ন আলোচনাটি পুরানো। ব্যবহারকারীরা এটি দেখতে এবং এটির মতো আচরণ করার প্রত্যাশা করবে।
মার্টিন মার্কনকিনি

উত্তর:


311

অবশেষে গুগল পুল টু রিফ্রেশ লাইব্রেরির একটি অফিশিয়াল সংস্করণ প্রকাশ করেছে!

এটি SwipeRefreshLayoutসমর্থন লাইব্রেরির ভিতরে বলা হয় এবং ডকুমেন্টেশনটি এখানে রয়েছে :

  1. যোগ SwipeRefreshLayoutএকটি দেখুন পিতা বা মাতা যা টান বিন্যাস রিফ্রেশ করতে বলে গণ্য হবে না। (আমি গ্রহণ ListViewএকটি উদাহরণ হিসাবে, এটা কোনো হতে পারে Viewমত LinearLayout, ScrollViewইত্যাদি)

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/pullToRefresh"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </android.support.v4.widget.SwipeRefreshLayout>
  2. আপনার শ্রেনীতে শ্রোতা যুক্ত করুন

    protected void onCreate(Bundle savedInstanceState) {
        final SwipeRefreshLayout pullToRefresh = findViewById(R.id.pullToRefresh);
        pullToRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                refreshData(); // your code
                pullToRefresh.setRefreshing(false);
            }
        });
    }

pullToRefresh.setRefreshing(true/false);আপনার প্রয়োজন অনুযায়ী কল করতেও পারেন ।

হালনাগাদ

অ্যান্ড্রয়েড সমর্থন লাইব্রেরিগুলি অবজ্ঞাত করা হয়েছে এবং অ্যান্ড্রয়েডএক্স দ্বারা প্রতিস্থাপন করা হয়েছে। নতুন লাইব্রেরির লিঙ্কটি এখানে পাওয়া যাবে

এছাড়াও, আপনার প্রকল্পে আপনাকে নিম্নলিখিত নির্ভরতা যুক্ত করতে হবে:

implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'

অথবা

আপনি রিফ্যাক্টারে যেতে পারেন >> অ্যান্ড্রয়েডএক্সে মাইগ্রেট করুন এবং অ্যান্ড্রয়েড স্টুডিও আপনার জন্য নির্ভরতা পরিচালনা করবে handle


3
আমি কি সোয়াইপ রিফ্রেশলায়াউটে রঙিন স্কিমের পরিবর্তে একটি অগ্রগতিবার ব্যবহার করতে পারি?
pablobaldez

54
এপ্রিল 1 '14 - এবং এটি কোনও রসিকতা ছিল না
এয়ারাকোড


80

আমি উপাদানটি রিফ্রেশ করার জন্য একটি টান বাস্তবায়নের চেষ্টা করেছি, এটি সম্পূর্ণরূপে অনেক দূরে তবে একটি সম্ভাব্য বাস্তবায়ন প্রদর্শন করে, https://github.com/johannilsson/android-pulltorefresh

মূল যুক্তি PullToRefreshListViewযে প্রসারিত মধ্যে প্রয়োগ করা হয় ListViewঅভ্যন্তরীণভাবে এটি smoothScrollBy(এপিআই লেভেল 8) ব্যবহার করে শিরোনাম দর্শনটির স্ক্রোলিং নিয়ন্ত্রণ করে । উইজেটটি এখন 1.5 এবং পরে সমর্থন করে আপডেট করা হয়েছে, দয়া করে 1.5 সাপোর্টের জন্য README পড়ুন।

আপনার বিন্যাসে আপনি এটি সহজভাবে এটি যুক্ত করুন।

<com.markupartist.android.widget.PullToRefreshListView
    android:id="@+id/android:list"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    />

3
হাই জোহান, আমি আপনার নমুনা কোডটি ডাউনলোড করেছি। এটি অ্যান্ড্রয়েড ২.২ ডিভাইসে কাজ করা হলেও ২.১ ডিভাইসে কাজ হয়নি। আমি মনে করি কারণ এটি স্মুথস্ক্রোলবি পদ্ধতিটি ব্যবহৃত হয়েছিল যা কেবল ২.২ বা তার পরে পাওয়া যায়, এটি সঠিক? এবং এই প্রভাবটি ২.১ বা পূর্ববর্তী সংস্করণে রূপায়ণ করার জন্য আপনার কি কোনও ধারণা আছে? ধন্যবাদ

হ্যাঁ এটি ঠিক আছে যেহেতু আমি উত্তরে বলেছি যে স্মুথস্ক্রোলবাই এপিআই লেভেল 8 (2.2) এ পরিচয় করিয়েছিল। আমি অন্যান্য সংস্করণগুলির জন্য এটি বাস্তবায়নের জন্য এখনও কোনও সঠিক উপায় বের করতে পারি নি, তবে এটি অনুমান করে স্মুথস্ক্রোলবাইয়ের প্রয়োগটি পোর্ট করা সম্ভব হবে তবে আমার ধারণা যে আলোচনাকে প্রকল্পের সাইটে রাখা উচিত, স্ট্যাক ওভারফ্লোতে নয়?
জোহান বার্গ নীলসন

আইডিটি কি ++ আইডি / অ্যান্ড্রয়েড: তালিকা এবং @ অ্যান্ড্রয়েড নয়: আইডি / তালিকা, এটি অদ্ভুত দেখাচ্ছে? প্রকল্পটি এখানে আমার দিকে মুদ্রাস্ফীতি ত্রুটি ছুঁড়েছে, আমি বর্তমানে এটি পরীক্ষা করছি ...
ম্যাথিয়াস কনরাডেট

12
রিফ্রেশ করার জন্য টানার জন্য এটি সেরা লাইব্রেরি আমি পেয়েছি .. github.com/chrisbanes/Android- পুলটোরআরফ্রেশ । এটি লিস্টভিউ, গ্রিডভিউ এবং ওয়েবভিউগুলির সাথে কাজ করে। রিফ্রেশ প্যাটার্ন বাস্তবায়িত করতে টানুনও।
অরলিগ

1
আমি ইন্টেলিজ আইডিয়ায় কাজ করার সময় লাইব্রেরি ফোল্ডারে প্রকল্পটি কীভাবে যুক্ত করব? কেউ কি আমাকে সাহায্য করতে পারেন?
মোস্তফা গেভেন

55

আমি একটি শক্তিশালী, ওপেন সোর্স, সহজেই ব্যবহারযোগ্য এবং অ্যান্ড্রয়েডের জন্য অত্যন্ত কাস্টমাইজযোগ্য পুলটোররিফ্রেশ লাইব্রেরি প্রয়োগ করেছি। প্রকল্প পৃষ্ঠায় ডকুমেন্টেশনে বর্ণিত হিসাবে আপনি পুলটোরআরফ্রেশলিস্টভিউ দিয়ে আপনার তালিকাভিউ প্রতিস্থাপন করতে পারেন।

https://github.com/erikwt/PullToRefresh-ListView


আমি এখানে তালিকাভুক্ত সমস্ত বাস্তবায়ন চেষ্টা করেছি এবং বাস্তবায়নকে রিফ্রেশ করার জন্য সরল / খাঁটি / মসৃণ টান (জোহানের মতো অদ্ভুততা রিফ্রেশ করার জন্য কোনও ট্যাপ নেই) এর দিক থেকে আপনার ক্ষেত্রে সেরা। ধন্যবাদ!
গ্যাডি

1
এটি কি তালিকার ক্রিয়াকলাপ, লিস্টফ্রেগমেন্ট এবং এর সাথে কাজ করার জন্য একটি আদর্শ তালিকাভিউ প্রতিস্থাপন করতে পারে?
ডেভিডেসারিনো

হ্যাঁ, কেবল পুলডোরআরফ্রেশলিস্টলিভিউকে সঠিক আইডি দিন। এক্সএমএলে: অ্যান্ড্রয়েড: আইডি = "@ অ্যান্ড্রয়েড: আইডি / তালিকা"
এরিক

1
এটি একেবারে দুর্দান্ত! গুগল আমাকে এখানে এনেছে, এবং উদাহরণগুলি দেখে আপনার বাস্তবায়ন করা সহজ দেখাচ্ছে। ব্রাভো এবং ধন্যবাদ স্যার!
ইভান আর।

খুব সংবেদনশীলভাবে ডিজাইন করা উপাদান, সুন্দর এবং সহজ। এটি অবশ্যই গ্রহণযোগ্য উত্তর হওয়া উচিত।
অ্যাডাম

42

আমার মনে হয় সবচেয়ে সহজ উপায় অ্যান্ড্রয়েড সমর্থন লাইব্রেরি দ্বারা সরবরাহিত হিসাবে:

android.support.v4.widget.SwipeRefreshLayout;

একবার এটি আমদানি হয়ে গেলে আপনার লেআউটটি নীচের মতো সংজ্ঞায়িত করতে পারেন:

  <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/refresh"
        android:layout_height="match_parent"
        android:layout_width="match_parent">
    <android.support.v7.widget.RecyclerView
        xmlns:recycler_view="http://schemas.android.com/apk/res-auto"
        android:id="@android:id/list"
        android:theme="@style/Theme.AppCompat.Light"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/button_material_light"
        >

    </android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>

আমি ধরে নিলাম আপনি তালিকার ভিউয়ের পরিবর্তে পুনর্ব্যবহারযোগ্য ভিউটি ব্যবহার করেন। যাইহোক, তালিকাভিউ এখনও কাজ করে তাই আপনাকে কেবল তালিকা-দর্শন সহ পুনর্ব্যবহারযোগ্য পর্যালোচনা এবং জাভা কোড (ফ্রেগমেন্ট) এর রেফারেন্সগুলি আপডেট করতে হবে।

আপনার ক্রিয়াকলাপ খণ্ডে, আপনি প্রথমে ইন্টারফেসটি প্রয়োগ করেন SwipeRefreshLayout.OnRefreshListener: i, e

public class MySwipeFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener{
private SwipeRefreshLayout swipeRefreshLayout;

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_item, container, false);
        swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refresh);
        swipeRefreshLayout.setOnRefreshListener(this);
}


 @Override
  public void onRefresh(){
     swipeRefreshLayout.setRefreshing(true);
     refreshList();
  }
  refreshList(){
    //do processing to get new data and set your listview's adapter, maybe  reinitialise the loaders you may be using or so
   //when your data has finished loading, cset the refresh state of the view to false
   swipeRefreshLayout.setRefreshing(false);

   }
}

আশা করি এটি জনগণকে সহায়তা করবে


এটি ভালই কাজ করে. যদিও, সম্পর্কিত একটি বিষয় setRefreshing: ডেভেলপার.অ্যান্ড্রয়েড
রেফারেন্স

ভাল করেছ! ধন্যবাদ।
টেকনিক

22

এই লিঙ্কটিতে, আপনি বিখ্যাত PullToRefreshদৃশ্যের একটি কাঁটাচামড়া খুঁজে পেতে পারেন যার মধ্যে নতুন আকর্ষণীয় বাস্তবায়ন রয়েছে PullTorRefreshWebViewবা PullToRefreshGridViewবা PullToRefreshতালিকার নীচের প্রান্তে যুক্ত করার সম্ভাবনা রয়েছে ।

https://github.com/chrisbanes/Android-PullToRefresh

এবং এর মধ্যে সেরাটি হ'ল অ্যান্ড্রয়েড in.১ এ সম্পূর্ণ নিখুঁত কাজ (সাধারণ PullToRefreshকাজ করে না)


3
রিডমের শীর্ষে একটি বড় মন্তব্য ইঙ্গিত করে: এই প্রকল্পটি আর দীর্ঘায়িত হচ্ছে না। যাইহোক, এই লিব আমি এখনও অবধি দেখা সেরা! মহান কাজ!
মিল্টন

3
কেবল এটি আর রক্ষণাবেক্ষণের কারণে নয়, এর অর্থ এটি ভাল নয়। প্রয়োজনীয়তা রিফ্রেশ করার জন্য এখনও আমার সমস্ত টানের জন্য এটি ব্যবহার করুন :)
মুজ

18

এটি করার আমার কাছে খুব সহজ উপায় আছে তবে এখন নিশ্চিত এটির নির্বোধ উপায়টি আমার কোড রয়েছে পুলডাউনলিস্টভিউ.জভা

package com.myproject.widgets;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;

/**
 * @author Pushpan
 * @date Nov 27, 2012
 **/
public class PullDownListView extends ListView implements OnScrollListener {

    private ListViewTouchEventListener mTouchListener;
    private boolean pulledDown;

    public PullDownListView(Context context) {
        super(context);
        init();
    }

    public PullDownListView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public PullDownListView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private void init() {
        setOnScrollListener(this);
    }

    private float lastY;

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            lastY = ev.getRawY();
        } else if (ev.getAction() == MotionEvent.ACTION_MOVE) {
            float newY = ev.getRawY();
            setPulledDown((newY - lastY) > 0);
            postDelayed(new Runnable() {
                @Override
                public void run() {
                    if (isPulledDown()) {
                        if (mTouchListener != null) {
                            mTouchListener.onListViewPulledDown();
                            setPulledDown(false);
                        }
                    }
                }
            }, 400);
            lastY = newY;
        } else if (ev.getAction() == MotionEvent.ACTION_UP) {
            lastY = 0;
        }
        return super.dispatchTouchEvent(ev);
    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
            int visibleItemCount, int totalItemCount) {
        setPulledDown(false);
    }

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
    }

    public interface ListViewTouchEventListener {
        public void onListViewPulledDown();
    }

    public void setListViewTouchListener(
            ListViewTouchEventListener touchListener) {
        this.mTouchListener = touchListener;
    }

    public ListViewTouchEventListener getListViewTouchListener() {
        return mTouchListener;
    }

    public boolean isPulledDown() {
        return pulledDown;
    }

    public void setPulledDown(boolean pulledDown) {
        this.pulledDown = pulledDown;
    }
}

আপনি কেবলমাত্র এই তালিকাভিউটি ব্যবহার করতে এবং শ্রোতাকে সেট করতে চান সেখানে আপনার ক্রিয়াকলাপের তালিকার ভিউ টাচএভেন্টলিস্টনার বাস্তবায়ন করতে হবে

আমি এটি পুলডাউনলিস্টভিউঅ্যাক্টিভিটিতে প্রয়োগ করেছি

package com.myproject.activities;

import android.app.Activity;
import android.os.Bundle;

/**
 * @author Pushpan
 *
 */
public class PullDownListViewActivity extends Activity implements ListViewTouchEventListener {

    private PullDownListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        listView = new PullDownListView(this);
        setContentView(listView);
        listView.setListViewTouchListener(this);

        //setItems in listview
    }

    public void onListViewPulledDown(){
        Log.("PullDownListViewActivity", "ListView pulled down");
    }
}

এটা আমার জন্য কাজ করে :)


18

অ্যান্ড্রয়েড বাস্তবায়নের জন্য এই টুকরো কোডটি টানুন-রিফ্রেশ করুন,

<android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/pullToRefresh"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</android.support.v4.widget.SwipeRefreshLayout>

ক্রিয়াকলাপ শ্রেণি:

ListView lv = (ListView) findViewById(R.id.lv);
SwipeRefreshLayout pullToRefresh = (SwipeRefreshLayout) findViewById(R.id.pullToRefresh);


lv.setAdapter(mAdapter);

pullToRefresh.setOnRefreshListener(new OnRefreshListener() {

        @Override
        public void onRefresh() {
            // TODO Auto-generated method stub

            refreshContent();

        }
    });



private void refreshContent(){ 

     new Handler().postDelayed(new Runnable() {
            @Override public void run() {
                pullToRefresh.setRefreshing(false);
            }
        }, 5000);

 }

1
ধন্যবাদ.ইটি আমাকে সত্যিই সাহায্য করেছে
অর্পণ শর্মা

9

গুগল নাও বা জিমেইল অ্যাপ্লিকেশনের মতো অ্যাকশন বারের শীর্ষে প্রদর্শিত হওয়া নতুন ধরণের "পুল টু রিফ্রেশ" উল্লেখ করা হয়নি have

অ্যাকশনবার-পুলটোররিফ্রেশে একটি লাইব্রেরি রয়েছে যা ঠিক একই কাজ করে।


7

নোট করুন যে অ্যান্ড্রয়েড এবং ডাব্লুপিপি বাস্তবায়নের সময় ইউএক্স সমস্যাগুলি রয়েছে issues

"ডিজাইনার / দেবগণ আইওএস অ্যাপগুলির মতো স্টাইলটিতে পুল-টু-রিফ্রেশ কেন প্রয়োগ করবেন না তার দুর্দান্ত সূচকটি হ'ল গুগল এবং তাদের দলগুলি আইওএস-এ এটি ব্যবহার করার সময় অ্যান্ড্রয়েডে কখনই টানা-রিফ্রেশ ব্যবহার করে না" "

https://plus.google.com/109453683460749241197/posts/eqYxXR8L4eb


3
আমি জানি এটি এক বছরেরও বেশি পুরানো তবে Gmail অ্যাপ্লিকেশনটি পুল টু রিফ্রেশ ব্যবহার করে। তবে এটি ইউআই এর ক্ষেত্রে একেবারে একই নয়, তালিকাটি স্ক্রোল করে না, বরং পর্দার শীর্ষে একটি নতুন ভিউ শো করে।
আশিশদহ

4

আপনি যদি না চান যে আপনার প্রোগ্রামটি আইফোন প্রোগ্রামের মতো দেখতে চাই যা জোর করে অ্যান্ড্রয়েডে লাগানো থাকে তবে আরও আদি চেহারা এবং অনুভূতির জন্য লক্ষ্য করুন এবং জিঞ্জারব্রেডের মতো কিছু করুন:

বিকল্প পাঠ


2
@ রব: আপনি বোঝাচ্ছেন তালিকার শীর্ষে কমলা রঙের ছায়া রাখার অর্থ, আইফোনের মতো তালিকার পিছনে ফিরে আসার পরিবর্তে। এটি একটি মন্তব্য হিসাবে বোঝানো হয়েছে (উত্তর নয়), তবে মন্তব্যে ছবি থাকতে পারে না।
মিথ্যা রায়ান

আহ, দুঃখিত, দুর্দান্ত ধারণা। আমি এখনও জিঞ্জারব্রেড নিয়ে খেলিনি, তাই এর প্রভাবও দেখিনি। এখনও গুগল এটি নেক্সাস একটিতে রোল করার জন্য অপেক্ষা করছে।
রব

9
আমার কাছে জিঞ্জারব্রেড রয়েছে এবং কোনও তালিকা স্থির থাকলে কমলা রঙের আভা দুর্দান্ত কাজ করে। তবে টান-ডাউন-রিফ্রেশ একটি গতিশীল তালিকাকে রিফ্রেশ করার জন্য দুর্দান্ত ইউআই মেকানিজম। যদিও এটি আইওএস ওয়ার্ল্ডে প্রচলিত, এটি একটি ইউআই ট্রিক যা অ্যান্ড্রয়েড ইকোসিস্টেমের সাথে খারাপ লাগে না। আমি আপনাকে দৃ Twitter়ভাবে পরামর্শ দিচ্ছি যে আপনি এটি অফিশিয়াল টুইটার অ্যাপে পরীক্ষা করে দেখুন। :)
থিয়েরি-দিমিত্রি রায়

এখানকার নেটিভ আচরণটি হ'ল এটি নির্দেশ করে যে আপনি কোনও তালিকার শেষে পৌঁছে গেছেন। আপনি এটি প্ল্যাটফর্ম যা করছেন না তাই এটি গ্রহণ করে এবং একটি রিফ্রেশ সম্পাদন করা একইরকম অ-নেটিভ। এর অর্থ আপনি ব্যবহারকারীকে অবাক করে দেওয়ার সম্ভাবনা বেশি। আমি কেবল একটি তালিকা শেষে এসেছি বলে আমি অবশ্যই রিফ্রেশ আশা করি না বা চাই না। রিফ্রেশ করতে নীচে টানুন অনেক বেশি স্বজ্ঞাত এবং স্পষ্ট। এবং নেটিভ টুইটার অ্যাপটি ব্যবহার করার সাথে সাথে আমি এটির ন্যায্য ধারণাটি এটি একটি ইউআই ধারণা হিসাবে প্রচুর পরিমাণে মানুষ পরিচিত people
পদক্ষেপ 17

4

আমি এখানে উপাদানটি রিফ্রেশ করার জন্য একটি টান লিখেছি: https://github.com/guillep/PullToRefresh তালিকায় আইটেম না থাকলে এটি ইভেন্টে কাজ করে, এবং আমি এটিকে> = 1.6 অ্যান্ড্রয়েড ফোনে পরীক্ষা করেছি।

কোন পরামর্শ বা উন্নতি প্রশংসা করা হয় :)



1

সর্বশেষতম ললিপপ পুল-টু রিফ্রেশ পেতে:

  1. সর্বশেষতম ললিপপ এসডিকে এবং অতিরিক্ত / অ্যান্ড্রয়েড সমর্থন লাইব্রেরি ডাউনলোড করুন
  2. অ্যান্ড্রয়েড 5.0 এ প্রকল্পের বিল্ড টার্গেট সেট করুন (অন্যথায় সমর্থন প্যাকেজটিতে সংস্থানগুলির সাথে ত্রুটি থাকতে পারে)
  3. আপনার libs / android-support-v4.jar 21 তম সংস্করণে আপডেট করুন
  4. android.support.v4.widget.SwipeRefreshLayoutপ্লাস ব্যবহার করুনandroid.support.v4.widget.SwipeRefreshLayout.OnRefreshListener

বিস্তারিত গাইড এখানে পাওয়া যাবে: http://antonioleiva.com/swiperefreshlayout/

প্লাস্টিক লিস্টভিউয়ের জন্য আমি canChildScrollUp()মন্তব্যগুলিতে পড়ার পরামর্শ দিই ;)


কেবলমাত্র চ্যানেলস্ক্রোলআপ () উল্লেখ করার জন্য প্লাস ওয়ান। অনেক গুরুত্বপূর্ণ!
পেট্রো

1

অত্যন্ত আকর্ষণীয় -করতে-টানুন রিফ্রেশ দ্বারা Yalantis । আইওএসের জন্য জিআইএফ, তবে আপনি এটি পরীক্ষা করতে পারেন :)

<com.yalantis.pulltorefresh.library.PullToRefreshView
android:id="@+id/pull_to_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
    android:id="@+id/list_view"
    android:divider="@null"
    android:dividerHeight="0dp"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />


0

অ্যান্ড্রয়েডের লেআউট রিফ্রেশ করার জন্য আমাদের প্রথমে জানতে হবে should সোয়েপ-টু-রিফ্রেশ হিসাবে অ্যান্ড্রয়েডে রিফ্রেশ করতে আমরা টানতে পারি কল can আপনি যখন উপরে থেকে নীচে স্ক্রিনটি সোয়াইপ করেন তখন সেটঅনআরফ্রেশলিস্টের উপর ভিত্তি করে এটি কিছু ক্রিয়া করবে।

এখানে টিউটোরিয়াল যা রিফ্রেশ করতে অ্যান্ড্রয়েড টান প্রয়োগ করতে হবে তা সম্পর্কে প্রদর্শন করে। আশা করি এটা কাজে লাগবে.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.