Android设置输入框和软键盘动态悬浮

满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述Android设置输入框和软键盘动态悬浮相关的知识,希望能为你提供帮助。

1 < ?xml version="1.0" encoding="utf-8"?> 2 < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3xmlns:tools="http://schemas.android.com/tools" 4android:layout_width="match_parent" 5android:layout_height="match_parent" 6tools:context="com.liuzheng.admin.myhidden.MainActivity"> 7 8< LinearLayout 9android:layout_width="match_parent" 10android:layout_height="45dp" 11android:layout_alignParentBottom="true" 12android:orientation="horizontal"> 13 14< Button 15android:id="@+id/butt1" 16android:layout_width="wrap_content" 17android:layout_height="wrap_content" 18android:focusable="true" 19android:focusableInTouchMode="true" 20android:text="显示" /> 21 22< Button 23android:id="@+id/butt2" 24android:layout_width="wrap_content" 25android:layout_height="wrap_content" 26android:text="隐藏" /> 27 28< EditText 29android:id="@+id/edit_text" 30android:layout_width="200dp" 31android:layout_height="wrap_content" /> 32 33< /LinearLayout> 34 35 < /RelativeLayout>

【Android设置输入框和软键盘动态悬浮】 
1 public class MainActivity extends AppCompatActivity { 2 3private Button butt1; 4private Button butt2; 5private EditText edit; 6 7@Override 8protected void onCreate(Bundle savedInstanceState) { 9super.onCreate(savedInstanceState); 10setContentView(R.layout.activity_main); 11edit = (EditText) findViewById(R.id.edit_text); 12butt1 = (Button) findViewById(R.id.butt1); 13butt1.setOnClickListener(new View.OnClickListener() { 14@Override 15public void onClick(View view) { 16//绑定软键盘到EditText 17edit.setFocusable(true); 18edit.setFocusableInTouchMode(true); 19edit.requestFocus(); 20InputMethodManager inputManager = (InputMethodManager) edit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 21inputManager.showSoftInput(edit, 0); 22} 23}); 24butt2 = (Button) findViewById(R.id.butt2); 25butt2.setOnClickListener(new View.OnClickListener() { 26@Override 27public void onClick(View view) { 28 //去除软键盘显示 29edit.clearFocus(); 30InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 31imm.hideSoftInputFromWindow(edit.getWindowToken(), 0); 32} 33}); 34} 35 }

1 < ?xml version="1.0" encoding="utf-8"?> 2 < manifest xmlns:android="http://schemas.android.com/apk/res/android" 3package="com.liuzheng.admin.myhidden"> 4 5< application 6android:allowBackup="true" 7android:icon="@mipmap/ic_launcher" 8android:label="@string/app_name" 9android:supportsRtl="true" 10android:theme="@style/AppTheme"> 11< activity android:name=".MainActivity" 12android:windowSoftInputMode="adjustResize"> 13< intent-filter> 14< action android:name="android.intent.action.MAIN" /> 15 16< category android:name="android.intent.category.LAUNCHER" /> 17< /intent-filter> 18< /activity> 19< /application> 20 21 < /manifest>

在 项目的AndroidManifest.xml文件中界面对应的< activity> 里加入
android:windowSoftInputMode="adjustResize"


各值的含义:【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示【C】stateHidden:用户选择activity时,软键盘总是被隐藏【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的【E】stateVisible:软键盘通常是可见的【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分





 

    推荐阅读