美文网首页Android 进阶技术篇专题我爱编程
Android 支持拖动、缩放的自定义软键盘

Android 支持拖动、缩放的自定义软键盘

作者: SwitchLife | 来源:发表于2019-04-16 20:32 被阅读14次

    开篇

      本次给大家分享的是支持拖动、缩放的自定义原生软键盘。不同于市面上的自定义软件,此键盘完全是原生实现。为什么要写这款自定义键盘,是因为在项目开发过程中,发现在弹窗输入框中调用系统输入法的时候,输入框会别严重挤上去,特别处于横屏界面时,键盘所占有的空间很大,留给用户的操作空间太小,压缩了用户的体验性。当前还没有发布到jCenter中心,如果有类似需求,请到GitHub下载该库至项目中,按需求做相应调整。使用该库,请注明出处,谢谢!(后期优化后会发布到jCenter中心)

    扫码下载体验

    传送门:https://github.com/JustinRoom/KeyboardDemo

    效果图

    数字键盘 字母键盘 字母+数字混合键盘 被拖至底部的混合键盘

    使用方法

    使用要点:

    • a、创建KeyBoardView实例(支持xml布局文件):
    KeyBoardView keyboardView = new KeyBoardView(context);
    
    • b、管理所有需要使用该自定义键盘的EditText
        //如果view是ViewGroup,自动查找该ViewGroup树下的所有EditText并加入管理
        public void addAllInputView(View view)
    
        //添加某一特定的EditText
        public void addInputView(@NonNull EditText editText)
    
        public void removeAllInputView(View view)
    
        public void removeInputView(@NonNull EditText editText)
    
    • c、把KeyBoardView添加到ActivityFragmentDialogFragment所在的Window中:
      KeyUtils工具已提供了一个快速添加的方法。
    KeyUtils.init(getActivity().getWindow(), keyboardView);
    
    • 1、Activity、Fragment。这里以Fragment为例:
       public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
           View root = inflater.inflate(R.layout.fragment_keyboard, container, false);
           keyboardView = new KeyBoardView(root.getContext());
           keyboardView.addAllInputView(root);
           KeyUtils.init(getActivity().getWindow(), keyboardView);
    
           root.findViewById(R.id.btn_toggle).setOnClickListener(this);
           root.findViewById(R.id.btn_dialog).setOnClickListener(this);
           return root;
       }
       
           @Override
           public void onResume() {
               super.onResume();
               keyboardView.onResume();
           }
       
           @Override
           public void onPause() {
               Log.i("KeyboardFragment", "onPause: ");
               keyboardView.onPause();
               super.onPause();
           }
       
           @Override
           public void onDestroy() {
               keyboardView.onDestroy();
               super.onDestroy();
           }
    

    微信:eoy9527QQ:1006368252

    篇尾

    人类的全部历史都告诫有智慧的人,不要笃信时运,而应坚信思想。 —— 爱献生

    相关文章

      网友评论

        本文标题:Android 支持拖动、缩放的自定义软键盘

        本文链接:https://www.haomeiwen.com/subject/zfmiwqtx.html