تعطيل كرة التتبع في Android
سؤال
لقد واجهت بعض الصعوبات في تنفيذ مربع حوار تقدم مخصص. على الرغم من أن التراكب يعترض أحداث اللمس ، لا يزال بإمكان المستخدم تشغيل كرة التتبع والنقر فوق عناصر من المفترض أن يتم تعطيلها.
هل هناك أي طريقة للتغلب على هذه؟
تحرير: هنا حل
//=====================================================================================
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 () ، لا تفعل شيئًا فيه فقط.
لا تنتمي إلى StackOverflow