Android 进阶技术篇专题我爱编程

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

2019-04-16  本文已影响14人  SwitchLife

开篇

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

扫码下载体验

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

效果图

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

使用方法

使用要点:

KeyBoardView keyboardView = new KeyBoardView(context);
    //如果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)
KeyUtils.init(getActivity().getWindow(), keyboardView);
   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

篇尾

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

上一篇下一篇

猜你喜欢

热点阅读