एक सरल समाधान मौजूद है। इन विशेषताओं को अपने मूल लेआउट में सेट करें:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true" >
और अब, जब गतिविधि शुरू होगी यह मुख्य लेआउट डिफ़ॉल्ट रूप से ध्यान केंद्रित करेगा।
इसके अलावा, हम रनटाइम पर बच्चे के विचारों से ध्यान हटा सकते हैं (जैसे, बाल संपादन समाप्त करने के बाद) फिर से मुख्य लेआउट पर ध्यान केंद्रित करके, जैसे:
findViewById(R.id.mainLayout).requestFocus();
गिलोय पेरोट से अच्छी टिप्पणी :
android:descendantFocusability="beforeDescendants"
लगता है कि डिफ़ॉल्ट (पूर्णांक मान 0 है)। यह सिर्फ जोड़कर काम करता है
android:focusableInTouchMode="true"
।
वास्तव में, हम देख सकते हैं कि beforeDescendants
सेट ViewGroup.initViewGroup()
विधि में डिफ़ॉल्ट (Android 2.2.2) है। लेकिन 0 के बराबर नहीं।ViewGroup.FOCUS_BEFORE_DESCENDANTS = 0x20000;
गिलौम के लिए धन्यवाद।
android:focusableInTouchMode="true"
!