2015-06-08 6 views
5

Ich habe versucht, scrollview zu meiner android benutzerdefinierten Tastatur Ime hinzuzufügen, aber nichts, ich habe versucht, nicht so weit zu arbeiten.Wie scrollview zu keyboardView in android hinzufügen

Hier ist ein Teil meines Codes

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; 
    } 

ich die Fehler unter

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

Erwartet: Blättern wie Bild unten (Hochladen nicht möglich hier sieht aus wie mein Ruf nicht genug für diese :))

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

Jede Hilfe geschätzt wird. Danke

+0

Was genau ist das Problem? Erhalten Sie Fehler? Was ist die erwartete Ausgabe gegenüber der tatsächlichen Ausgabe? – JNYRanger

+0

Ich habe ein ähnliches Problem. Aber ich habe keine Lösung bekommen. –

Antwort

2

Versuchen Sie diese Änderung:

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; 
} 
Verwandte Themen