点击上方“Android技术杂货铺”,选择“标星”
干货文章,第一时间送达!
开篇
本次给大家分享的是支持拖动、缩放的自定义原生软键盘。不同于市面上的自定义软件,此键盘完全是原生实现。为什么要写这款自定义键盘,是因为在项目开发过程中,发现在弹窗输入框中调用系统输入法的时候,输入框会别严重挤上去,特别处于横屏界面时,键盘所占有的空间很大,留给用户的操作空间太小,压缩了用户的体验性。当前还没有发布到jCenter
中心,如果有类似需求,请到GitHub下载该库至项目中,按需求做相应调整。
传送门:/JustinRoom/KeyboardDemo
效果图
使用方法
使用要点:
a、创建KeyBoardView实例(支持xml布局文件):
KeyBoardViewkeyboardView=newKeyBoardView(context);
b、管理所有需要使用该自定义键盘的EditText
:
publicvoidaddAllInputView(Viewview)//添加某一特定的EditTextpublicvoidaddInputView(@NonNullEditTexteditText)publicvoidremoveAllInputView(Viewview)publicvoidremoveInputView(@NonNullEditTexteditText)//如果view是ViewGroup,自动查找该ViewGroup树下的所有EditText并加入管理
c、把KeyBoardView
添加到Activity
、Fragment
、DialogFragment
所在的Window
中:KeyUtils
工具已提供了一个快速添加的方法。
KeyUtils.init(getActivity().getWindow(),keyboardView);
1、Activity、Fragment。这里以Fragment为例:
Viewroot=inflater.inflate(R.layout.fragment_keyboard,container,false); keyboardView=newKeyBoardView(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); returnroot; } @Override publicvoidonResume(){ super.onResume(); keyboardView.onResume(); } @Override publicvoidonPause(){ Log.i("KeyboardFragment","onPause:"); keyboardView.onPause(); super.onPause(); } @Override publicvoidonDestroy(){ keyboardView.onDestroy(); super.onDestroy(); }publicViewonCreateView(@NonNullLayoutInflaterinflater,@NullableViewGroupcontainer,@NullableBundlesavedInstanceState){
其他实现细节请看源码:/JustinRoom/KeyboardDemo
作者:SwitchLife
链接:/p/8f3382a63f8b
本文来自
SwitchLife
投稿
---end---
推荐阅读:
高仿探探首页波纹扫描效果
开源一个 Android 图片压缩框架
Java8 中的Lambda 表达式详解
随手点好看年薪上百万!