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

点击上方“Android技术杂货铺”,选择“标星”

干货文章,第一时间送达!

4dd26e95ad73be5be8a30f55b3814170.png
开篇

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

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

效果图

e66d7d4b14608a210b3799bce71f549b.png

2313beca178737cb8c56e90a67a465f6.png

93ad5151751b8a62931aa4d1cf048585.png

c32761516c614e88356ce22988a1a801.png

使用方法

使用要点:

  • a、创建KeyBoardView实例(支持xml布局文件):

KeyBoardView keyboardView = new KeyBoardView(context);
  • b、管理所有需要使用该自定义键盘的EditText

 //如果view是ViewGroup,自动查找该ViewGroup树下的所有EditText并加入管理
    public void addAllInputView(View view)//添加某一特定的EditTextpublic 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();
       }

其他实现细节请看源码:https://github.com/JustinRoom/KeyboardDemo

作者:SwitchLife
链接:https://www.jianshu.com/p/8f3382a63f8b
本文来自SwitchLife投稿

---end---

推荐阅读:

高仿探探首页波纹扫描效果

开源一个 Android 图片压缩框架

Java8 中的Lambda 表达式详解

8968a8c5691097437319be97de3c1a71.png 8d2c5a34dcc8f6f9939c86ad85cbb3bb.png  2019 随手点好看 年薪上百万!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值