问题
I have an Android activity and there is one EditText in the whole layout. For some reason, whenever the activity starts, the keyboard comes up.
I have tried all of the following things:
Placing these two in
OnStart:FindViewById<EditText> (Resource.Id.searchText).ClearFocus (); FindViewById<EditText> (Resource.Id.searchText).Selected = false;Adding a
LinearLayoutwith these two properties:android:focusable="true" android:focusableInTouchMode="true"Adding the following tag inside another
Viewon the layout:android:focusable="true" android:focusableInTouchMode="true"Adding this to my activity manifest:
android:windowSoftInputMode="stateHidden"
But still, the keyboard opens when the activity opens. What could I be doing wrong?
回答1:
Try this -this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
回答2:
Try these for Xamarin.Android (Cross Platform)
this.Window.SetSoftInputMode (SoftInput.StateHidden);
Or
Add this to manifest,
[Activity(Label = "SampleApp", MainLauncher = true, Icon = "@drawable/icon", WindowSoftInputMode = SoftInput.StateHidden)]
回答3:
Add this to manifest file...
<activity android:name=".YourActivity" android:windowSoftInputMode="stateHidden" />
回答4:
Android by default targets the first focusable object. Whilst kirankk's answer works for standard activities, if you're using a DialogFragment with a custom view, the much easier option (which incidentally also works for standard activities) is to make the ViewGroup (ie LinearLayout/RelativeLayout) that your text view is contained in focusable and focusable in touch mode. This can be done from the AXML and prevents the TextView being the first focusable view.
回答5:
I know this is super old, but find that adding this to your root view in the XML file usually helps to prevent this issue:
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
来源:https://stackoverflow.com/questions/18407505/prevent-edittext-from-automatically-focusing