I want to know how it's possible to add View
on top of Keyboard like WhatsApp and Hangout. In chat screen, they insert emoticons view on top of the opened soft keyboard.
Does anyone know how to achieve this behavior?
Well, I have created a sample keyboard for chatting here...
Here, I use popup window for showing popup window and height of popup is calculated dynamically by height of keyboard
// Initially defining default height of keyboard which is equal to 230 dip final float popUpheight = getResources().getDimension( R.dimen.keyboard_height); changeKeyboardHeight((int) popUpheight); // Creating a pop window for emoticons keyboard popupWindow = new PopupWindow(popUpView, LayoutParams.MATCH_PARENT, (int) keyboardHeight, false);
and height is calculated using this function :
/** * Checking keyboard height and keyboard visibility */ int previousHeightDiffrence = 0; private void checkKeyboardHeight(final View parentLayout) { parentLayout.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect r = new Rect(); parentLayout.getWindowVisibleDisplayFrame(r); int screenHeight = parentLayout.getRootView() .getHeight(); int heightDifference = screenHeight - (r.bottom); if (previousHeightDiffrence - heightDifference > 50) { popupWindow.dismiss(); } previousHeightDiffrence = heightDifference; if (heightDifference > 100) { isKeyBoardVisible = true; changeKeyboardHeight(heightDifference); } else { isKeyBoardVisible = false; } } }); }
Using all these stuff i am able to make a perfect overlapping keyboard....
then i inflate popup window with viewpager and gridview for emoticons.
Also, i use spannable string for showing these emoticons in listview and chat window
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With