2016-07-09 3 views
0

Я создал клавиатуру, у которой есть кнопки для изменения на клавиатуре emojis и для изменения тем соответственно. Я создал макет относительно файлов в XML-файле, но я не знаю, как их раздувать. Я пробовал это, чтобы раздуть макет на этой кнопке, но ничего не происходит.Развертывание макета на клавиатуре Android android

menuBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      inflater.inflate(R.layout.theme_layout, null, false); 
      //inflate here 
     } 
    }); 

Что делать, чтобы раздуть макет? Кроме того, я должен раздувать его по клавиатурному виду, а не нормальному виду.

Вот скриншот клавиатуры: enter image description here

ответ

0

Ваша функция надувается и выбросить результат. Вы должны сохранить результат в переменной View, а затем изменить дерево просмотра с помощью этой переменной. Может быть так

ViewGroup parent = (ViewGroup) yourCurView.getParent(); 
        parent.removeView(yourCurView); 
        parent.addView(yourNewView); 

Для переключения между клавиатурами используется KeyboardView.setKeyboard().

+0

Развертывает макет, но раздутый макет ничего не делает, даже если он объявлен в действии. Что мне делать в этом случае? –

+0

Если вы говорите о пользовательской клавиатуре, это не активность, а услуга. Система ожидает, что всплывающее представление будет возвращено в [InputMethodService.onCreateInputView()] (https://developer.android.com/reference/android/inputmethodservice/InputMethodService.html#onCreateInputView()) –

Смежные вопросы