防止EditText自动聚焦

时间:2013-08-23 16:19:42

标签: android android-edittext xamarin.android xamarin

我有Android活动,整个布局中只有一个EditText。出于某种原因,每当活动开始时,键盘就会出现。 我尝试过所有以下内容:

  • 将这两个放在OnStart

    FindViewById<EditText> (Resource.Id.searchText).ClearFocus ();
    FindViewById<EditText> (Resource.Id.searchText).Selected = false;
    
  • 使用以下两个属性添加LinearLayout

    android:focusable="true" android:focusableInTouchMode="true"
    
  • 在布局上的另一个View内添加以下标记:

    android:focusable="true" android:focusableInTouchMode="true"
    
  • 将此添加到我的活动清单中:

    android:windowSoftInputMode="stateHidden"
    

仍然,活动打开时键盘会打开。我能做错什么?

5 个答案:

答案 0 :(得分:7)

请尝试Xamarin.Android(跨平台)

this.Window.SetSoftInputMode (SoftInput.StateHidden);

或者

将此添加到清单

[Activity(Label = "SampleApp", MainLauncher = true, Icon = "@drawable/icon", WindowSoftInputMode = SoftInput.StateHidden)]

答案 1 :(得分:4)

试试这个 - this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

答案 2 :(得分:2)

将此添加到清单文件...

<activity android:name=".YourActivity" android:windowSoftInputMode="stateHidden"  />

答案 3 :(得分:0)

Android默认情况下定位第一个可聚焦对象。虽然kirankk的答案适用于标准活动,但如果您使用带有自定义视图的DialogFragment,则更容易的选项(顺便提一下也适用于标准活动)是制作ViewGroup(即LinearLayout / RelativeLayout)您的文字视图包含在可关注和可聚焦的触摸模式中。这可以通过AXML完成,并防止TextView成为第一个可聚焦视图。

答案 4 :(得分:0)

我知道这是非常古老的,但是发现将其添加到XML文件的根视图中通常可以防止此问题:

 android:descendantFocusability="beforeDescendants"
 android:focusableInTouchMode="true"