键盘仅在用户单击EditText时显示

时间:2015-10-08 21:24:18

标签: android xml xamarin keyboard

我的xml中有以下android app个文件。当用户打开应用程序时,键盘会同时变为活动状态。即使用户甚至没有在EditText开始。

我怎么能控制键盘?我希望当用户点按EditText时显示键盘。

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/mList"
        android:minWidth="25px"
        android:minHeight="25px">
    <EditText
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/search" />
   <ListView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/mListView" />
   </LinearLayout>

2 个答案:

答案 0 :(得分:1)

修改axml文件,如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/mWellList"
    android:minWidth="25px"
    android:minHeight="25px"
    android:descendantFocusability="beforeDescendants"
    android:focusableInTouchMode="true" >

或用代码执行:

var root = FindViewById<LinearLayout>(Resource.Id.mWellList);
root.RequestFocus();

如此处所述:https://forums.xamarin.com/discussion/1856/how-to-disable-auto-focus-on-edit-text

隐藏键盘:

包括:

 using Android.Views.InputMethods;  

然后:

InputMethodManager imm = (InputMethodManager) this.GetSystemService(Context.InputMethodService); 
imm.HideSoftInputFromWindow(YourEditTextHere.WindowToken, 0);

同时检查此帖子是否在外面触摸时清除焦点:EditText, clear focus on touch outside

答案 1 :(得分:0)

活动标记内添加清单文件

android:windowSoftInputMode="stateAlwaysHidden"

如下

<activity
  android:name=".MainActivity"
  android:label="@string/app_name"
  android:windowSoftInputMode="stateAlwaysHidden" >
  <intent-filter>
     <action android:name="android.intent.action.MAIN" />
     <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>