0
서비스 컨텍스트에서 두 가지보기를 표시하고 싶습니다. 하나는 TextView이고 다른 하나는 기본 View 클래스를 확장하여 개발 한 클래스입니다.
prompt.xml :서비스보기보기 getLayoutInflater
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mtPrompt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/background_dark"
android:text="@string/demoString"
android:textColor="@android:color/white"
android:minLines="2"
android:textSize="25dp" >
</TextView>
및 input.xml : 내 onInitializeInterface() 구현
<com.xxx.ime.sssView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/inputView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/translucent_gray"
android:cacheColorHint="@null" >
</com.xxx.ime.sssView>
나는 다음과 같이 그들을 팽창 : 나는 sssView를 참조
sssView sv =
(sssView) getLayoutInflater().inflate(R.layout.input, null);
TextView tv =
(TextView) getLayoutInflater().inflate(R.layout.prompt, null);
을하지만, TextView가 아닙니다. 어떤 아이디어?
둘 다 setContentView로 설정합니까? – Sajmon
아니요, 예를 들어 (SoftKeyboard)에서 작업 한 예가 setContentView()를 호출하지 않았습니다. 나는 그 전화를하기 위해 활동을 추론해야 할 것입니다, 그리고 그것은 옳지 않은 것 같습니다. –
휴식 후 이것을 계속 살펴 봅니다 ...
하나의보기가 표시되므로 ViewGroup (LinearLayout)을 사용하여 두 가지보기를 모두 유지하기로 결정했습니다. 이 경우 InputMethodService.setInputView()에서 IllegalStateException이 발생합니다.이 함수는 내가 재정의하지 않은 함수입니다. 오류 메시지에 "지정된 하위에 이미 상위 항목이 있습니다"라고 표시됩니다. 나는 이것이 setInputView가 내 LinearLayout에 자식 뷰를 다시 붙이기를 요구한다는 것을 의미한다. setInputView를 오버라이드 (override)하면 (자) 이것을 막을 수가 있습니까. 나는 무슨 일이 일어나는지 보려고 노력할 것입니다. –