b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

AndroidSoftKeyboard软键盘的弹起与关闭(1)_预备知识_光明网

电脑杂谈  发布时间:2021-05-09 15:02:03  来源:网络整理

[背景]

在许多App开发过程中,有必要在Activity中监视Android设备的软键盘弹出和关闭,但是Android似乎没有提供供我们调用的相关监视API。本文提供了一种监视软键盘弹跳和关闭的可行方法。

[基础知识]

您可以在清单文件中设置Activity的android:windowSoftInputMode属性。此属性值的常用设置如下:

android:windowSoftInputMode =“ stateAlwaysHidden | adjustPan”

然后,该值的含义如下:

oracle 关闭_android 键盘关闭_android 键盘关闭

[1] stateUnspecified:未指定软键盘的状态,系统将选择适当的状态或主题相关的设置

[2] stateUnchanged:出现此活动时,软键盘将始终保持上一个活动的状态,无论该活动是隐藏还是显示

[3] stateHidden:当用户选择活动时,软键盘始终处于隐藏状态

[4] stateAlwaysHidden:当活动的主窗口获得焦点时,软键盘始终处于隐藏状态

[5] stateVisible:通常可见软键盘

oracle 关闭_android 键盘关闭_android 键盘关闭

[6] stateAlwaysVisible:当用户选择活动时,始终显示软键盘

[7] AdjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

[8] AdjustResize:该活动始终会调整屏幕尺寸以为软键盘留出空间

[9] AdjustPan:当前窗口的内容将自动移动,以使当前焦点不会被键盘覆盖,并且用户始终可以看到输入内容

[示例]

android 键盘关闭_android 键盘关闭_oracle 关闭

(1)首先,我们需要将清单文件中监视器的活动设置为以下形式:

        <activity
            android:name="com.bear.softkeyboardlistener.MainActivity"
            android:label="@string/app_name"
            android:windowSoftInputMode="stateAlwaysHidden|adjustResize" >
            
                
                
            
        

完成此设置后,当弹出软键盘时,“活动”的布局大小将被压缩,但是您仍然可以通过滑动浏览所有内容。

(2)我们需要为Activity的最外层布局设置一个OnLayoutChangeListener侦听器:

import com.bear.bearbroadcastreceiver.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnLayoutChangeListener;
import android.widget.Toast;
public class MainActivity extends Activity implements OnLayoutChangeListener{
	
	//Activity最外层的Layout视图
	private View activityRootView;
	//屏幕高度
	private int screenHeight = 0;
	//软件盘弹起后所占高度阀值
	private int keyHeight = 0;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		activityRootView = findViewById(R.id.root_layout);
		//获取屏幕高度
		screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();
		//阀值设置为屏幕高度的1/3
		keyHeight = screenHeight/3;
	}
	
	@Override
	protected void onResume() {
		super.onResume();
		
		//添加layout大小发生改变器
		activityRootView.addOnLayoutChangeListener(this);
	}
	
	@Override
	public void onLayoutChange(View v, int left, int top, int right,
			int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
		
		//old是改变前的左上右下坐标点值,没有old的是改变后的左上右下坐标点值
		
//		System.out.println(oldLeft + " " + oldTop +" " + oldRight + " " + oldBottom);
//		System.out.println(left + " " + top +" " + right + " " + bottom);
		
		
		//现在认为只要控件将Activity向上推的高度超过了1/3屏幕高,就认为软键盘弹起
		if(oldBottom != 0 && bottom != 0 &&(oldBottom - bottom > keyHeight)){
			
			Toast.makeText(MainActivity.this, "到软键盘弹起...", Toast.LENGTH_SHORT).show();
		
		}else if(oldBottom != 0 && bottom != 0 &&(bottom - oldBottom > keyHeight)){
			
			Toast.makeText(MainActivity.this, "到软件盘关闭...", Toast.LENGTH_SHORT).show();
		
		}
		
	}

以下是整个演示源代码的下载链接:

Android SoftKeyboard器演示


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-374192-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...