Android让文本输入框默认不获取焦点       


     


项目中有个检索功能,页面上有个EditText输入框,打开页面后,焦点默认在EditText上,这样的话软键盘默认就会显示出来,占据大半个屏幕。

后来想办法将这个给去掉了,原先考虑着将焦点赋给页面上的其他组件(页面上还有时间选择组件、按钮组件等),方法如下:

<EditText                 android:id="@+id/topical_content"                 android:layout_width="260dip"                 android:layout_alignParentLeft="true"                 android:layout_height="wrap_content"                 android:textSize="12sp"                 android:layout_toLeftOf="@id/topical_image"                 android:hint="请输入主题"                 android:singleLine="true"                
    android:nextFocusUp="@+id/其它控件ID" android:nextFocusLeft="@+id/其它控件ID"> 
   
            </EditText>
另一种方法是在EditText前面放置一个看不到的LinearLayout,让它率先获取焦点,代码如下:
<LinearLayout android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px"/>
还有一种方法是在manifest中设置对activity的控制(此方法从网上找的,效果没有试验,不知道可不可以,列出来给大家参考下)
<activity ...  android:windowSoftInputMode="stateAlwaysHidden|adjustResize" 
本人项目中用的是第二种方法,即在EditText前面加了一个Linearlayout,让它让率先获取焦点,实现了我想要的结果。


项目中有个检索功能,页面上有个EditText输入框,打开页面后,焦点默认在EditText上,这样的话软键盘默认就会显示出来,占据大半个屏幕。

后来想办法将这个给去掉了,原先考虑着将焦点赋给页面上的其他组件(页面上还有时间选择组件、按钮组件等),方法如下:

 

<EditText                 android:id="@+id/topical_content"                 android:layout_width="260dip"                 android:layout_alignParentLeft="true"                 android:layout_height="wrap_content"                 android:textSize="12sp"                 android:layout_toLeftOf="@id/topical_image"                 android:hint="请输入主题"                 android:singleLine="true"                
    android:nextFocusUp="@+id/其它控件ID" android:nextFocusLeft="@+id/其它控件ID"> 
   
            </EditText>
另一种方法是在EditText前面放置一个看不到的LinearLayout,让它率先获取焦点,代码如下:
<LinearLayout android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px"/>
还有一种方法是在manifest中设置对activity的控制(此方法从网上找的,效果没有试验,不知道可不可以,列出来给大家参考下)
<activity ...  android:windowSoftInputMode="stateAlwaysHidden|adjustResize"

本人项目中用的是第二种方法,即在EditText前面加了一个Linearlayout,让它让率先获取焦点,实现了我想要的结果。