java - الزناد SwipeRefreshLayout برمجيا




android (3)

هل هناك أي طريقة لتشغيل SwipeRefreshLayout برمجيا؟ يجب أن يبدأ الرسم المتحرك ومن يجب onRefresh الأسلوب onRefresh من واجهة OnRefreshListener .


إذا كنت تستخدم swipeRefreshLayout الجديد intoduced في الإصدار 5.0

نظرًا لأن الصورة المعروضة أعلاه تحتاج فقط إلى إضافة السطر التالي لتشغيل تخطيط تحديث التمرير برمجيًا

 mSwipeRefreshLayout.post(new Runnable() {
        @Override
        public void run() {
            mSwipeRefreshLayout.setRefreshing(true);
        }
    });

إذا كنت اتصل ببساطة

 mSwipeRefreshLayout.setRefreshing(true);

لن يؤدي ذلك إلى تنشيط الدائرة ، لذلك بإضافة السطر أعلاه ، يمكنك إجراء تأخير في مؤشر ترابط واجهة المستخدم بحيث تعرض حركة الدائرة داخل مؤشر ترابط واجهة المستخدم.

عن طريق استدعاء mSwipeRefreshLayout.setRefreshing(true) لن يتم تنفيذ OnRefreshListener

لوقف استدعاء الرسوم المتحركة للتحميل الدائرية mSwipeRefreshLayout.setRefreshing(false)


لمجرد القوة في إضافة هذا اثنين لفتة انتقاد ennable

swipeRefreshLayout.setOnRefreshListener(
    new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            Log.i(TAG, "onRefresh called from SwipeRefreshLayout");

            // This method performs the actual data-refresh operation.
            // The method calls setRefreshing(false) when it's finished.
            FetchData();
        }
    }
);

يمكنك استدعاء الأسلوب onRefresh () برمجيًا ، ثم داخل الأسلوب بدء الحركة في حالة عدم بدء تشغيلها بالفعل. انظر ما يلي:

@Override
public void onRefresh() {
    if (!mSwipeRefreshLayout.isRefreshing()) mSwipeRefreshLayout.setRefreshing(true);
    //TODO
}




swiperefreshlayout