【问题标题】:Prevent EditText from automatically focusing防止 EditText 自动对焦
【发布时间】:2013-08-23 16:19:41
【问题描述】:

我有一个 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"
    

但是仍然,当 Activity 打开时,键盘会打开。我可能做错了什么?

【问题讨论】:

  • 对于正在查看此内容并考虑将其标记为重复的人,请不要这样做。我已经阅读了this question 并尝试了一切。

标签: android android-edittext xamarin.android xamarin


【解决方案1】:

试试这些Xamarin.Android(跨平台)

this.Window.SetSoftInputMode (SoftInput.StateHidden);

或者

将此添加到清单中,

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

【讨论】:

  • 谢谢,您拯救了这一天!没有黑客,没有额外的代码,纯粹的令人敬畏。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      Android 默认以第一个可聚焦对象为目标。虽然 kirankk 的答案适用于标准活动,但如果您使用带有自定义视图的 DialogFragment,则更简单的选项(顺便也适用于标准活动)是创建 ViewGroup(即 LinearLayout/RelativeLayout)您的文本视图包含在可聚焦和可聚焦的触摸模式中。这可以从 AXML 中完成,并防止 TextView 成为第一个可聚焦的视图。

      【讨论】:

        【解决方案5】:

        我知道这是超级旧的,但发现将其添加到 XML 文件中的根视图通常有助于防止此问题:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-03
          • 2015-01-07
          • 1970-01-01
          • 2018-12-25
          • 1970-01-01
          • 2018-08-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多