精华内容
下载资源
问答
  • 软键盘

    2011-05-04 00:31:00
    软键盘

    Android软键盘研究: 1.利用按钮弹出软键盘。 2.程序启动后直接弹出软键盘

    1.由Button的OnClick事件调出软键盘和隐藏软键盘。具体代码如下:

    public class test extends Activity implements OnClickListener{

    Button bt;

    @Override public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    // setContentView(R.layout.main);

    LinearLayout l=new LinearLayout(this); LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams(

    LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT

    ); bt=new Button(this); bt.setId(123); bt.setText("出来啦!!!"); bt.setOnClickListener(this);

    l.addView(bt, ll); this.setContentView(l);

    }

    public void onClick(View v) {

    Log.e("TAG", "in...................");

    InputMethodManager m=(InputMethodManager) bt.getContext()

    getSystemService(INPUT_METHOD_SERVICE);

    m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

    // m.showSoftInput(findViewById(123), InputMethodManager.SHOW_FORCED);

    }

    }

    2.程序启动后直接弹出软键盘,不能直接在OnCreate中设置,必须等View绘制事件完毕才可以弹出,需要用到Timer辅助实现,代码如下。

    public class chick extends Activity {

    @Override public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    // setContentView(R.layout.main);

    LinearLayout l=new LinearLayout(this); l.setOrientation(LinearLayout.VERTICAL); LinearLayout.LayoutParams ll=new LinearLayout.LayoutParams(

    LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT

    ); bt=new Button(this); bt.setId(123); bt.setText("出来吧!!!");

    Timer timer = new Timer(); timer.schedule(new TimerTask() {

    @Override public void run() {

    Log.e("TAG", "run"); InputMethodManager imm = (InputMethodManager)bt.getContext().getSystemService(INPUT_METHOD_SERVICE);

    imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); Toast.makeText(chick.this, "show", Toast.LENGTH_SHORT).show();

    }

    }, 1000);

    l.addView(bt, ll);

    this.setContentView(l);

    }

    Button bt;

    }

    展开全文
  • Android自定义软键盘

    千次下载 热门讨论 2012-08-29 15:09:21
    Android自定义软键盘
  • Android中获取软键盘状态和软键盘高度

    万次阅读 热门讨论 2015-07-02 20:32:20
    介绍Android中获取软键盘状态和软键盘高度的方法

    应用场景

    在Android应用中有时会需要获取软键盘的状态(即软键盘是显示还是隐藏)和软键盘的高度。这里列举了一些可能的应用场景。

    1. 场景一
      当软键盘显示时,按下返回键应当是收起软键盘,而不是回退到上一个界面,但部分机型在返回键处理上有bug,按下返回键后,虽然软键盘会自动收起,但不会消费返回事件,导致Activity还会收到这次返回事件,执行回退操作,这时就需要判断,如果软键盘刚刚由显示变为隐藏状态,就不执行回退操作。
    2. 场景二
      当软键盘弹出后,会将界面底部到中间的一大部分全部挡住,如果用户要查看、操作被覆盖的区域,必须先收起软键盘,这会影响用户交互。所以通常需要在软键盘弹出后,将底部的一些View,例如Button,移到软键盘的上方,方便用户操作。

    API的困境

    Android SDK中没有提供任何API来直接获取软键盘的状态和软键盘的高度,网上很多资料说InputMethodManager的isActive()方法可以获取软键盘状态,不过实际测试发现,这个方法并没有什么用,如果它返回false,可以判断软键盘一定是隐藏的,但如果它返回true,软键盘既可能是显示的,也可能是隐藏的。所以并不能通过isActive()方法来判断软键盘究竟是显示还是隐藏的。要想获取软键盘的状态和软键盘的高度,只能通过间接方法实现。

    注册布局变化监听

    在Android中当软键盘由隐藏变为显示,或由显示变为隐藏时,会触发当前布局中View的全局布局变化。通过监听全局布局的变化就可以得知软键盘的状态。
    Android框架提供了一个ViewTreeObserver类,它是一个View视图树的观察者类。ViewTreeObserver类中定义了一系列的公共接口(public interface)。当一个View attach到一个窗口上时就会创建一个ViewTreeObserver对象,这样当一个View的视图树发生改变时,就会调用该对象的某个方法,将事件通知给每个注册的监听者。
    OnGlobalLayoutListener是ViewTreeObserver中定义的众多接口中的一个,它用来监听一个视图树中全局布局的改变或者视图树中的某个视图的可视状态的改变。当软键盘由隐藏变为显示,或由显示变为隐藏时,都会调用当前布局中所有存在的View中的ViewTreeObserver对象的dispatchOnGlobalLayout()方法,此方法中会遍历所有已注册的OnGlobalLayoutListener,执行相应的回调方法,将全局布局改变的消息通知给每个注册的监听者。
    向一个View中的ViewTreeObserver注册OnGlobalLayoutListener的方法如下。

    view.getViewTreeObserver().addOnGlobalLayoutListener(listener);

    注册OnGlobalLayoutListener时有一些需要注意的地方。

    1. 注册的监听在不使用时需要调用removeOnGlobalLayoutListener或removeGlobalOnLayoutListener来移除监听,不然可能会导致内存泄露。通常可以在Activity的onCreate()方法中注册监听,在onDestory()方法中移除监听。
    2. 并不是只有显示和隐藏软键盘会触发OnGlobalLayoutListener中的回调,一个View在绘制完成,或者消失时都会触发OnGlobalLayoutListener中的回调(由于在onCreate中无法获取一个View的宽度和高度,很多时候就是通过注册OnGlobalLayoutListener,在OnGlobalLayoutListener的回调中来获取一个View的宽度和高度)。

    为了在OnGlobalLayoutListener的回调中准确的判断是否是由于软键盘状态改变引起的,以及获取软键盘的高度,还需要另外一个接口。

    获取当前窗口可见的显示区域大小

    在View中提供了一个方法getWindowVisibleDisplayFrame(),此方法会返回该view所附着的窗口的可见区域大小。当软键盘显示时,窗口的可见区域大小会被压缩,当软键盘隐藏时,窗口的可见区域大小会还原。不过并不是只有软键盘的显示和隐藏会影响窗口的可见区域大小,像大多数的平板和部分手机上有一排虚拟按键(虚拟的返回键,Home键等),虚拟按键的显示和隐藏也会引起窗口可见区域的变化。不过好在除了软键盘外,其他操作对窗口可见区域的影响占整个屏幕大小的比例都不是很大,通过设置一个合理的阈值,就可以较准确的判断出是否是软键盘显示和隐藏引起的布局变化。
    此外,getWindowVisibleDisplayFrame()会返回窗口的可见区域高度,通过和屏幕高度相减,就可以得到软键盘的高度了。

    监听软键盘的状态变化

    在获取到软键盘的状态和高度后就可以执行需要的操作了。如重新布局按钮位置,设置变量,记录当前软键盘状态和上次软键盘隐藏时间等。不过如果有多个类需要根据软键盘状态来执行一些操作,如果每个类中都去这样做一遍就很麻烦,而且也没有必要。这时在可以自行定义一个接口,在主Activity中对软键盘状态变化进行监听,其他对软键盘状态感兴趣的类,向主Activity中注册软键盘状态变化监听。在主Activity中,当软键盘状态发生改变时通知监听者。

    完整示例代码

    完整的示例代码如下。

    public interface OnSoftKeyboardStateChangedListener {
        public void OnSoftKeyboardStateChanged(boolean isKeyBoardShow, int keyboardHeight);
    }
    
    //注册软键盘状态变化监听
    public void addSoftKeyboardChangedListener(OnSoftKeyboardStateChangedListener listener) {
        if (listener != null) {
            mKeyboardStateListeners.add(listener);
        }
    }
    //取消软键盘状态变化监听
    public void removeSoftKeyboardChangedListener(OnSoftKeyboardStateChangedListener listener) {
        if (listener != null) {
            mKeyboardStateListeners.remove(listener);
        }
    }
    
    private ArrayList<OnSoftKeyboardStateChangedListener> mKeyboardStateListeners;      //软键盘状态监听列表
    private OnGlobalLayoutListener mLayoutChangeListener;
    private boolean mIsSoftKeyboardShowing;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        mIsSoftKeyboardShowing = false;
        mKeyboardStateListeners = new ArrayList<OnSoftKeyboardStateChangedListener>();
        mLayoutChangeListener = new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                //判断窗口可见区域大小
                Rect r = new Rect();
                getWindow().getDecorView().getWindowVisibleDisplayFrame(r);
                //如果屏幕高度和Window可见区域高度差值大于整个屏幕高度的1/3,则表示软键盘显示中,否则软键盘为隐藏状态。
                int heightDifference = screenHeight - (r.bottom - r.top);
                boolean isKeyboardShowing = heightDifference > screenHeight/3;
    
                //如果之前软键盘状态为显示,现在为关闭,或者之前为关闭,现在为显示,则表示软键盘的状态发生了改变
                if ((mIsSoftKeyboardShowing && !isKeyboardShowing) || (!mIsSoftKeyboardShowing && isKeyboardShowing)) {
                    mIsSoftKeyboardShowing = isKeyboardShowing;
                    for (int i = 0; i < mKeyboardStateListeners.size(); i++) {
                        OnSoftKeyboardStateChangedListener listener = mKeyboardStateListeners.get(i);
                        listener.OnSoftKeyboardStateChanged(mIsSoftKeyboardShowing, heightDifference);
                    }
                }
            }
        };
        //注册布局变化监听
        getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(mLayoutChangeListener);
    }
    
    @SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    @Override
    protected void onDestroy() {
        //移除布局变化监听
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            getWindow().getDecorView().getViewTreeObserver().removeOnGlobalLayoutListener(mLayoutChangeListener);
        } else {
            getWindow().getDecorView().getViewTreeObserver().removeGlobalOnLayoutListener(mLayoutChangeListener);
        }
        super.onDestroy();
    };

    其中screenHeight 是屏幕高度,关于屏幕高度的获取方法,网上有很多,这里就不介绍了。

    展开全文
  • Android解决EditText的点击隐藏软键盘、Enter键隐藏软键盘、点击非输入框区域隐藏...步骤一:隐藏软键盘: imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromW

    EditText隐藏软键盘、Enter键隐藏软键盘、点击非输入框区域隐藏软键盘


    步骤一:隐藏软键盘:

    在manifests文件中实现:

    android:windowSoftInputMode="stateHidden|adjustResize"

    在Activity点击事件中实现:

                    imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

    步骤二:Enter键隐藏软键盘:

        @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
                //隐藏键盘
                imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                if (imm.isActive()) {
                    imm.hideSoftInputFromWindow(SearchActivity.this.getCurrentFocus().getWindowToken(), 0);
                }
                return true;
            }
            return super.dispatchKeyEvent(event);
        }

    步骤三:点击非输入框区域隐藏软键盘:

    /**
         * 判断点击按下是否在EditText上
         *
         * @param v
         * @param event
         * @return
         */
        private boolean isShouldHideInput(View v, MotionEvent event) {
            if (v != null && (v instanceof EditText)) {
                int[] leftTop = {0, 0};
                //获取输入框当前的location位置
                v.getLocationInWindow(leftTop);
                int left = leftTop[0];
                int top = leftTop[1];
                int bottom = top + v.getHeight();
                int right = left + v.getWidth();
                if (event.getX() > left && event.getX() < right && event.getY() > top && event.getY() < bottom) {
                    // 点击的是输入框区域,保留点击EditText的事件
                    return false;
                } else {
                    return true;
                }
            }
            return false;
        }


     @Override
        public boolean dispatchTouchEvent(MotionEvent ev) {
            if (ev.getAction() == MotionEvent.ACTION_DOWN) {
                View v = getCurrentFocus();
                if (isShouldHideInput(v, ev)) {
                    imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    if (imm != null) {
                        imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
                    }
                }
                return super.dispatchTouchEvent(ev);
            }
            // 必不可少,否则所有的组件都不会有TouchEvent了
            if (getWindow().superDispatchTouchEvent(ev)) {
                return true;
            }
            return onTouchEvent(ev);
        }




    展开全文
  • Qt实现软键盘

    千次下载 热门讨论 2013-06-07 11:17:00
    Qt开发的软键盘,可以实现中文,英文输入和数字输入,界面还是比较漂亮, 欢迎下载学习。点击输入框中的键盘图标,显示软键盘,再此点击键盘图标,关闭软键盘软键盘上有关闭功能,多文本框输入软键盘不会关闭。
  • 应用场景在Android应用中有时会需要获取软键盘的状态(即软键盘是显示还是隐藏)和软键盘的高度。这里列举了一些可能的应用场景。 场景一 当软键盘显示时,按下返回键应当是收起软键盘,而不是回退到上一个界面,但...

    应用场景

    在Android应用中有时会需要获取软键盘的状态(即软键盘是显示还是隐藏)和软键盘的高度。这里列举了一些可能的应用场景。

    1. 场景一
      当软键盘显示时,按下返回键应当是收起软键盘,而不是回退到上一个界面,但部分机型在返回键处理上有bug,按下返回键后,虽然软键盘会自动收起,但不会消费返回事件,导致Activity还会收到这次返回事件,执行回退操作,这时就需要判断,如果软键盘刚刚由显示变为隐藏状态,就不执行回退操作。
    2. 场景二
      当软键盘弹出后,会将界面底部到中间的一大部分全部挡住,如果用户要查看、操作被覆盖的区域,必须先收起软键盘,这会影响用户交互。所以通常需要在软键盘弹出后,将底部的一些View,例如Button,移到软键盘的上方,方便用户操作。

    API的困境

    Android SDK中没有提供任何API来直接获取软键盘的状态和软键盘的高度,网上很多资料说InputMethodManager的isActive()方法可以获取软键盘状态,不过实际测试发现,这个方法并没有什么用,如果它返回false,可以判断软键盘一定是隐藏的,但如果它返回true,软键盘既可能是显示的,也可能是隐藏的。所以并不能通过isActive()方法来判断软键盘究竟是显示还是隐藏的。要想获取软键盘的状态和软键盘的高度,只能通过间接方法实现。

    注册布局变化监听

    在Android中当软键盘由隐藏变为显示,或由显示变为隐藏时,会触发当前布局中View的全局布局变化。通过监听全局布局的变化就可以得知软键盘的状态。
    Android框架提供了一个ViewTreeObserver类,它是一个View视图树的观察者类。ViewTreeObserver类中定义了一系列的公共接口(public interface)。当一个View attach到一个窗口上时就会创建一个ViewTreeObserver对象,这样当一个View的视图树发生改变时,就会调用该对象的某个方法,将事件通知给每个注册的监听者。
    OnGlobalLayoutListener是ViewTreeObserver中定义的众多接口中的一个,它用来监听一个视图树中全局布局的改变或者视图树中的某个视图的可视状态的改变。当软键盘由隐藏变为显示,或由显示变为隐藏时,都会调用当前布局中所有存在的View中的ViewTreeObserver对象的dispatchOnGlobalLayout()方法,此方法中会遍历所有已注册的OnGlobalLayoutListener,执行相应的回调方法,将全局布局改变的消息通知给每个注册的监听者。
    向一个View中的ViewTreeObserver注册OnGlobalLayoutListener的方法如下。

    view.getViewTreeObserver().addOnGlobalLayoutListener(listener);
    • 1

    注册OnGlobalLayoutListener时有一些需要注意的地方。

    1. 注册的监听在不使用时需要调用removeOnGlobalLayoutListener或removeGlobalOnLayoutListener来移除监听,不然可能会导致内存泄露。通常可以在Activity的onCreate()方法中注册监听,在onDestory()方法中移除监听。
    2. 并不是只有显示和隐藏软键盘会触发OnGlobalLayoutListener中的回调,一个View在绘制完成,或者消失时都会触发OnGlobalLayoutListener中的回调(由于在onCreate中无法获取一个View的宽度和高度,很多时候就是通过注册OnGlobalLayoutListener,在OnGlobalLayoutListener的回调中来获取一个View的宽度和高度)。

    为了在OnGlobalLayoutListener的回调中准确的判断是否是由于软键盘状态改变引起的,以及获取软键盘的高度,还需要另外一个接口。

    获取当前窗口可见的显示区域大小

    在View中提供了一个方法getWindowVisibleDisplayFrame(),此方法会返回该view所附着的窗口的可见区域大小。当软键盘显示时,窗口的可见区域大小会被压缩,当软键盘隐藏时,窗口的可见区域大小会还原。不过并不是只有软键盘的显示和隐藏会影响窗口的可见区域大小,像大多数的平板和部分手机上有一排虚拟按键(虚拟的返回键,Home键等),虚拟按键的显示和隐藏也会引起窗口可见区域的变化。不过好在除了软键盘外,其他操作对窗口可见区域的影响占整个屏幕大小的比例都不是很大,通过设置一个合理的阈值,就可以较准确的判断出是否是软键盘显示和隐藏引起的布局变化。
    此外,getWindowVisibleDisplayFrame()会返回窗口的可见区域高度,通过和屏幕高度相减,就可以得到软键盘的高度了。

    监听软键盘的状态变化

    在获取到软键盘的状态和高度后就可以执行需要的操作了。如重新布局按钮位置,设置变量,记录当前软键盘状态和上次软键盘隐藏时间等。不过如果有多个类需要根据软键盘状态来执行一些操作,如果每个类中都去这样做一遍就很麻烦,而且也没有必要。这时在可以自行定义一个接口,在主Activity中对软键盘状态变化进行监听,其他对软键盘状态感兴趣的类,向主Activity中注册软键盘状态变化监听。在主Activity中,当软键盘状态发生改变时通知监听者。

    完整示例代码

    完整的示例代码如下。

    public interface OnSoftKeyboardStateChangedListener {
        public void OnSoftKeyboardStateChanged(boolean isKeyBoardShow, int keyboardHeight);
    }
    
    //注册软键盘状态变化监听
    public void addSoftKeyboardChangedListener(OnSoftKeyboardStateChangedListener listener) {
        if (listener != null) {
            mKeyboardStateListeners.add(listener);
        }
    }
    //取消软键盘状态变化监听
    public void removeSoftKeyboardChangedListener(OnSoftKeyboardStateChangedListener listener) {
        if (listener != null) {
            mKeyboardStateListeners.remove(listener);
        }
    }
    
    private ArrayList<OnSoftKeyboardStateChangedListener> mKeyboardStateListeners;      //软键盘状态监听列表
    private OnGlobalLayoutListener mLayoutChangeListener;
    private boolean mIsSoftKeyboardShowing;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        mIsSoftKeyboardShowing = false;
        mKeyboardStateListeners = new ArrayList<OnSoftKeyboardStateChangedListener>();
        mLayoutChangeListener = new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                //判断窗口可见区域大小
                Rect r = new Rect();
                getWindow().getDecorView().getWindowVisibleDisplayFrame(r);
                //如果屏幕高度和Window可见区域高度差值大于整个屏幕高度的1/3,则表示软键盘显示中,否则软键盘为隐藏状态。
                int heightDifference = screenHeight - (r.bottom - r.top);
                boolean isKeyboardShowing = heightDifference > screenHeight/3;
    
                //如果之前软键盘状态为显示,现在为关闭,或者之前为关闭,现在为显示,则表示软键盘的状态发生了改变
                if ((mIsSoftKeyboardShowing && !isKeyboardShowing) || (!mIsSoftKeyboardShowing && isKeyboardShowing)) {
                    mIsSoftKeyboardShowing = isKeyboardShowing;
                    for (int i = 0; i < mKeyboardStateListeners.size(); i++) {
                        OnSoftKeyboardStateChangedListener listener = mKeyboardStateListeners.get(i);
                        listener.OnSoftKeyboardStateChanged(mIsSoftKeyboardShowing, heightDifference);
                    }
                }
            }
        };
        //注册布局变化监听
        getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(mLayoutChangeListener);
    }
    
    @SuppressWarnings("deprecation")
    @SuppressLint("NewApi")
    @Override
    protected void onDestroy() {
        //移除布局变化监听
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            getWindow().getDecorView().getViewTreeObserver().removeOnGlobalLayoutListener(mLayoutChangeListener);
        } else {
            getWindow().getDecorView().getViewTreeObserver().removeGlobalOnLayoutListener(mLayoutChangeListener);
        }
        super.onDestroy();
    };
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63

    其中screenHeight 是屏幕高度,关于屏幕高度的获取方法,网上有很多,这里就不介绍了。

    展开全文
  • 网上有很多监听软键盘弹出的方法,但大多用法过于复杂或存在缺陷,因此今天我们来聊聊如何简单的监听软键盘弹出并获取软键盘高度。 思路 上面已经提到了,软键盘弹出后 APP 窗口的高度会发生改变,而高度改变必然会...
  • Android禁用软键盘和取消禁用软键盘

    千次阅读 2019-10-17 09:44:16
    最近参加了一个项目,主要需要适应带有物理键盘的小屏幕机型,因为屏幕小...在BaseActivity里禁用软键盘 getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); 在需要打开的Activity取消禁用...
  • Dialog里面弹不出软键盘软键盘不出现显自定义Dialog
  • android中监听软键盘的弹出与隐藏,并获取软键盘的高度,在adjustPan,adjustResize,adjustUnspecified下都可以
  • 最近更改项目中的输入框样式,涉及到软键盘的显示和隐藏问题,总结了几点注意事项,希望能帮到遇到同样问题的小伙伴。博文中除了显示软键盘的注意问题以外,还有一个发送按钮是否需要显示在软键盘上的问题 一、先说...
  • * 点击软键盘外面的区域关闭软键盘 * @param ev * @return */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { ...
  • 很多时候在一个页面有多个输入框或者输入框加选择框的时候,我们需要根据用户的点击去关闭软键盘。 在Activity中加入以下代码即可 /** 重写dispatchTouchEvent * 点击软键盘外面的区域关闭软键盘 * @param ev ...
  • 自定义软键盘

    2016-07-19 13:13:16
    软键盘类型android:inputType属性表示软键盘类型,有三十多种。Enter键类型android:imeOptions属性表示Enter键类型,有十多种。对于多行字段,Enter为换行; 如果还有其他可聚焦控件,Enter表示移到下一个可聚焦...
  •  原理很简单,软键盘上方就是一个自定义的PopuWindow,在弹出PopuWindow的代码中激活了软键盘,随即PopuWindow就被软键盘顶到了其上方,里面还给PopuWindow加入了显示 和消失的动画,另外实现了对软键盘显示和隐藏...
  • 在一些有输入框的界面中,我们需要自动弹出软键盘。比如搜索界面,输入框需要自动获取焦点并弹出软键盘。 弹出软键盘代码: mEditText.setFocusable(true); mEditText.setFocusableInTouchMode(true); ...
  • qt中文软键盘

    千次下载 热门讨论 2013-01-07 21:22:23
    qt实现软键盘,支持中文,英文输入,提供删除功能。运行稳定,可以移植到windows,linux上等多种系统
  • 在切换的时候,有时候Edittext处于可编辑状态,软键盘是弹出状态,这时切换View的显隐,软键盘并不会收起,后来发现了这样一段代码 如下 public void hideKeyBoard(){ InputMethodManager imm = (InputMethodManager...
  • * 点击软键盘外面的区域关闭软键盘 * @param ev * @return */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { ...
  • 1.在使用EditText进行文本输入时,若不进行特殊的设置,使用Android自带的软键盘,该软键盘会占用整个界面,那么,如何让键盘只占用屏幕的一部分呢?  答:android:imeOptions="flagNoExtractUi" //使软键盘不全屏...
  • Qt软键盘

    千次阅读 2019-05-17 14:39:20
    **写在前面:**此键盘是参考网上各位大神的代码,经过自己进一步加工...本键盘支持嵌入式平台软键盘输入,贼好用。 git代码地址:https://github.com/wodelover/QKeyTools 觉得好用请点个星星,谢谢。 ...
  • Android软键盘(五)如何判断软键盘是否显示

    万次阅读 多人点赞 2016-12-27 22:30:28
    前几次分析了软键盘自动弹出的现象,以及布局上移上移等问题,这次记录一下,如何判断软键盘是否在显示。 先来看一下网上比较流行的答案: 一: if(getWindow().getAttributes().softInputMode == ...
  • 沉浸式和软键盘冲突

    万次阅读 2019-05-28 17:02:11
    沉浸式和软键盘冲突 问题:实现顶部状态栏沉浸式后,点击底部自定义的输入框,弹出软键盘后,输入框被遮挡 解决: import android.app.Activity; import android.graphics.Rect; import android.view.View; import ...
  • 隐藏软键盘

    千次阅读 2016-12-06 20:10:05
    /** * 隐藏软键盘 */ public static void hideKeyKeyboard(Activity mActivity) { InputMethodManager imm = (InputMethodManager) mActivity.getSystemService(INPUT_METHOD_SERVICE); imm
  • 我们常常需要知道软键盘的隐藏显示状态来对布局做一些操作,然后Android原生并没有提供一个接口或者监听让我们能够方便获得软键盘的状态。因此,我们只能别图它径来间接获取。 正常情况下,屏幕高度 = 屏幕可见高度+...
  • 最近在公司开发cocos2dx上的Android输入框控件,遇到软键盘的事件监听,通常软键盘的收起方式大致3种: 1.点击软键盘右下角的Return按钮(系统收起) 2.输入框焦点时按返回按钮(系统收起) 3.点击软键盘和输入框...
  • QT5的软键盘输入法

    千次阅读 2016-09-03 09:27:18
    软键盘
  • emWin软键盘

    千次阅读 2018-09-19 10:07:07
    自绘的一个数字软键盘,下载地址如下:https://download.csdn.net/download/vinkim/10675515

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,100
精华内容 6,040
关键字:

软键盘