سؤال

هل هناك طريقة لإلغاء تحديد برمجياً/تمحو كل ما حدده المستخدم مع لوحة التتبع/التتبع؟

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

هل كانت مفيدة؟

المحلول

النظر من خلال جافادوك للعرض أرى عددًا من الوظائف المتعلقة بالتركيز.

void clearFocus(); // drop focus from this view.
View findFocus(); // finds a view that is a child of this view that has focus, if any
View focusSearch(int dir); // finds the next view that can take focus in the given direction
void requestFocus

يبدو مثل findFocus().clearFocus() يجب القيام بالخدعة (ما لم يحدث العثور على FindFocus ، ... أنت فقط بحاجة إلى مقبض مع وجهة نظر النشاط الآخر ... والتي لا ينبغي أن تكون صعبة للغاية إذا كانت الكود الخاص بك ، أو غير تافهة إذا لم يكن كذلك.

إذا كان هذا هو الكود الخاص بك ، فيبدو أنه يمكنك فقط إضافة ClearFocus () إلى الزر OnClickHandler.

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