android软键盘 表情,SmartKeyboardManager

LeaveMessageBoardDemo.svg

优雅地切换表情键盘和软键盘

改进

使用 Android 原生属性动画 Api 解决了锁定 LinearLayout 高度的问题

加入 Alpha 属性动画改进切换键盘时候的用户体验

过滤快速点击事件,机智如我

增加 OnContentViewScrollListener,在键盘弹出或隐藏时,优雅地滚动你的 ContentView

效果

aef8c4698f175a4ee94d2287e970e08d.gif

Download

Step 1. Add the JitPack repository to your build file

allprojects {

repositories {

...

maven { url "https://jitpack.io" }

}

}

Step 2. Add the dependency

dependencies {

compile 'com.github.HelloVass:LeaveMessageBoardDemo:v0.1'

}

使用

1.根布局 LinearLayout,高度可变化的 ContentView(例如 RecyclerView、ListView...),将 ContentView 的属性设置为

android:id="@+id/rcv_list"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1" />

2.自定义表情键盘部分

android:id="@+id/reply_layout"

layout="@layout/include_msg_board_reply_layout"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

3.使用 SmartKeyboardManager

mSmartKeyboardManager = new SmartKeyboardManager.Builder(this).setContentView(mRecyclerView)

.setEmotionKeyboard(mFaceTextInputLayout) // 表情键盘 View

.setEditText(mFaceTextEmotionEditText) // 输入框

.setFaceTextEmotionTrigger(mFaceTextEmotionTrigger) // 表情键盘和软键盘的切换按钮

.addOnContentViewScrollListener(new SmartKeyboardManager.OnContentViewScrollListener() {

@Override public void shouldScroll(int distance) {

mRecyclerView.scrollBy(0, distance); // 将 recyclerview 滚动相应的距离,内部已经把滚动的方向问题处理好了,大胆使用吧

}

.create();

Tips

重写 Activity 的 onBackPressed 方法,使用 mSmartKeyboardManager.interceptBackPressed() 方法判断是否拦截返回键操作!

@Override public void onBackPressed() {

if (!mSmartKeyboardManager.interceptBackPressed()) {

super.onBackPressed();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值