How to add scrollview to keyboardView in Android

I am trying to add scrollview to my special Android keyboard, but am not trying anything to work so far.

Here is part of my code

keyboard.xml

<?xml version="1.0" encoding="UTF-8"?> <ScrollView android:layout_height="wrap_content" android:layout_width="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"> <android.inputmethodservice.KeyboardView android:id="@+id/keyboard" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:isScrollContainer="true" android:scrollbarAlwaysDrawHorizontalTrack="true" android:scrollbarStyle="insideOverlay" android:scrollbars="horizontal" android:focusable="true" /> </ScrollView> 

.java

  @Override public View onCreateInputView() { context = getApplicationContext(); ScrollView scroll = (ScrollView)getLayoutInflater().inflate(R.layout.keyboard,null); kv = (KeyboardView)scroll.findViewById(R.id.keyboard); keyboard = new Keyboard(this, R.xml.qwerty); kv.setPreviewEnabled(false); kv.setKeyboard(keyboard); kv.setHorizontalScrollBarEnabled(true); kv.canScrollHorizontally(1); kv.setOnKeyboardActionListener(this); return kv; } 

I get the error below

 > java.lang.IllegalStateException: The specified child already has a > parent. You must call removeView() on the child parent first. 

Expected: scroll as image below (Cant upload here, it looks like my reputation is not enough for this :))

http://www.fandroides.com/wp-content/uploads/2014/04/Google-keyboard-emojis.png

Any help would be appreciated. Thank you.

+5
source share
2 answers

Try making this change:

keyboard.xml

 <?xml version="1.0" encoding="utf-8"?> <android.inputmethodservice.KeyboardView android:id="@+id/keyboard" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" /> 

my_layout.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/keyboard_layout"> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="@dimen/example_height" android:id="@+id/keyboard_scroll"> </ScrollView> </LinearLayout> 

.java

 @Override public View onCreateInputView() { LinearLayout myView = (LinearLayout) View.inflate(this, R.layout.my_layout, null); ScrollView scrollView = (ScrollView) myView.findViewById(R.id.keyboard_scroll); KeyboardView kv = (KeyboardView) getLayoutInflater().inflate(keyboard.xml, null); keyboard = new Keyboard(this, R.xml.qwerty); kv.setKeyboard(keyboard); kv.setOnKeyboardActionListener(this); scrollView.addView(kv); return myView; } 
+3
source
 LinearLayout myView = (LinearLayout) View.inflate(this, R.layout.my_layout, null); HorizontalScrollView horizontalScrollView = (HorizontalScrollView) myView.findViewById(R.id.keyboard_scroll); 
0
source

All Articles