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

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

开篇

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

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

效果图

使用方法

使用要点:

  • 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 表达式详解

 2019 随手点好看 年薪上百万!

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

  1. android keyboard颜色,Android基于KeyboardView和Keyboard实现自定义软键盘 自定义键盘背景色...

    Android基于KeyboardView和Keyboard实现自定义软键盘 在一些特别的情况下我们需要去自定义键盘 例如: 银行app的密码输入之类的 笨方法就是直接使用布局写我们的自定义软键盘 但 ...

  2. Android基于KeyboardView和Keyboard实现自定义软键盘 自定义键盘背景色

    Android基于KeyboardView和Keyboard实现自定义软键盘 在一些特别的情况下我们需要去自定义键盘 例如: 银行app的密码输入之类的 笨方法就是直接使用布局写我们的自定义软键盘 但 ...

  3. 调用软键盘_Android 支持拖动、缩放的自定义软键盘

    点击上方"Android技术杂货铺",选择"标星" 干货文章,第一时间送达! 开篇 本次给大家分享的是支持拖动.缩放的自定义原生软键盘.不同于市面上的自定义软件 ...

  4. Android 自定义软键盘实现 数字九宫格

    前言 最近项目在对接美团外卖功能 实现外面小哥凭取货码取货 对接完功能后 用户反馈 弹出的软键盘 很难输入 数字太小了 大概是下面这种显示方式 需求 组长说 要不搞一个自定义软键盘吧 数字搞大点 方便 ...

  5. Android使用xml自定义软键盘效果(附源码)

    Android使用xml自定义软键盘效果原理: 1,软键盘其实是个控件,使用android.inputmethodserver.KeyboardView类定义. 2,主布局中使用帧布局,当我们需要显示 ...

  6. android自定义系统键盘,Android自定义软键盘

    [实例简介] Android自定义软键盘 [实例截图] [核心代码] keydemo └── keydemo ├── AndroidManifest.xml ├── bin │   ├── class ...

  7. Android自定义软键盘输入法,隐藏系统输入法显示光标的实现

    android实现自定义软键盘,先上图看效果,效果基本上是仿ios输入法实现的 这里是实现隐藏系统输入法,同时让EditText能获取光标的代码部分(通过反射调用): <span style=& ...

  8. Android自定义软键盘样式:字母、数字、标点三种切换

    先看效果图: 1.在需要的调用软键盘的activity_mian.xml中加入键盘控件 <!--自定义键盘控件--> <RelativeLayoutandroid:layout_wi ...

  9. android自动软键盘,Android自定义软键盘

    MyKeyboard Android自定义键盘的使用 实现步骤 第一步: 1.新建一个xml文件夹放在res目录下面,然后新建xml文件:money_keyboard.xml 2.然后在XML文件中添 ...

最新文章

  1. vscode 调试html页面,vscode调试HTML
  2. python语言入门m-「数据挖掘入门系列」Python快速入门
  3. linux wifi修改频率,Linux Custom CRDA WiFi regulatory.bin和40MHz BW 5GHz频...
  4. 2021宿州市地区高考成绩排名查询,2021年宿州市所有的高中排名,宿州市高中高考成绩排名出炉...
  5. WebStorm按Tab建快速生成代码模块
  6. Android批量图片载入经典系列——使用LruCache、AsyncTask缓存并异步载入图片
  7. 造成OOM的原因有哪几种?
  8. 广州培训:成功部署报表必做的四件事
  9. C++的STL标准库学习(deque)双向队列
  10. JAVA 泛型 入门
  11. Spring Bean的生命周期(一图看懂bean生命周期)
  12. 信息系统分析与设计(第四版)期末复习提纲
  13. 逃离北上广的成本越来越高了
  14. 春运火车票抢票浏览器强力推荐,秒抢车票到手
  15. 18位身份证号码含义及验证算法代码
  16. 软件测试实验学习笔记系列2 -- lint,splint的使用
  17. 怎样测试手机性能软件,如何检测手机性能的软件
  18. 安全浏览器无法安装?看这一篇就够了
  19. Android之手机振动和振铃
  20. HTML+CSS实现基础课程表页面制作 (锚链接到页面下方课程详细信息)~小白入门版~

热门文章

  1. 如何处理海量数据(上):从并发编程到分布式系统
  2. Asp.NetCore1.1版本没了project.json,这样来生成跨平台包
  3. keepalived+nginx安装与配置
  4. QThread中的互斥、读写锁、信号量、条件变量
  5. Jquery常用操作:checkbox、select取值,radio、checkbox、select选中及其相关
  6. centos yum 安装配置
  7. Fedora install chrome
  8. [好书推荐].计算机原理与设计——Verilog HDL版等;待续
  9. 20个Nginx Web服务器最佳安全实践
  10. 用Qt 4.4编写drcom的GUI (转)