سؤال

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

هل هناك أي طريقة للتغلب على هذه؟

تحرير: هنا حل

//=====================================================================================
protected void showProgressIndicator()
{
    progressIndicator_.show();
}

//=====================================================================================
@Override
public boolean onTrackballEvent(MotionEvent event)
{
    return progressIndicator_.getVisibility() == View.VISIBLE;
}

//=====================================================================================
protected void hideProgressIndicator()
{
    progressIndicator_.hide();
}

ثم في طريقة العرض

//=====================================================================================
public void show()
{
    setVisibility(VISIBLE);
    if (animationHandler_ != null)
        return;

    animationHandler_ = new Handler();
    animationHandler_.post(animateTask_);
    requestFocus();
}
هل كانت مفيدة؟

المحلول

افحص ال ontrackBallevent () طريقة. ثم حاول العودة مباشرة إلى الطريقة دون القيام بأي شيء فيه. هذا يجب أن يقتل الحدث على الفور.

نصائح أخرى

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

@Override 
public boolean dispatchTrackballEvent(android.view.MotionEvent ev) {
  return true;
};

لقد اختبرت هذا على هاتف Google Nexus One وهو يعمل بشكل جيد.

تجاوز ontrackBallevent () لا يعمل. حاول الإفراط في DispatchTrackBallevent () ، لا تفعل شيئًا فيه فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top