Reputation: 7358
I have an activity with a search box (EditText
) on the top, and a ListView below. Whenever the activity starts, the EditText always has focus and bring up the keyboard which partially cover the ListView
.
There's no other text view that can have focus.
I want the EditText to have focus ONLY when the user touches it and start typing. I try to put clearFocus()
in onCreateView
, onViewCreated
or onCreated
, but no luck.
Upvotes: 43
Views: 63204
Reputation: 1955
Add the android:focusable="true" and android:focusableInTouchMode="true" elements in the parent layout of EditText as follow;
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout7"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true">
I think, it should help you.
Upvotes: 2
Reputation: 51
You can try this:
editText.clearFocus();
where ever you want to clear focus.
Upvotes: 4
Reputation: 1516
You could use set focus on container view. Add to container android:focusableInTouchMode="true", android:focusable="true" and tag requestFocus example:
<RelativeLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
android:focusable="true">
<requestFocus/>
<EditText
android:id="@+id/edit_text_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
Upvotes: 6
Reputation: 48602
Set in your parent layout next attributes:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true" >
And now, when activity
starts this layout getting default focus.
Also we can remove focus from children views in runtime (e.g. after finishing child editing):
findViewById(R.id.mainLayout).requestFocus();
or
Look in the AndroidManifest.xml element.
android:windowSoftInputMode="stateHidden"
It always hide key board when entering the activity.
Upvotes: 115
Reputation: 3252
This will do your work:
android:windowSoftInputMode="stateHidden"
Upvotes: -3
Reputation: 7703
Here is the answer EditText, clear focus on touch outside.
Or you can just write widget which will show only text with textView and onClick
will display dialog with EditText
where you can edit this text/
Upvotes: 0
Reputation: 7023
you must have mentioned <requestFocus>
tag in your editTiext field
in XML remove that and run again
Upvotes: 4
Reputation: 5258
Try this
On your Activity
Declaration in AndroidManifest.xml
add the below code :
android:windowSoftInputMode="stateHidden"
It will prevent the keyboard to popup up when activity becomes visible.
Happy coding :)
Upvotes: -1