我正在開發一個自定義鍵盤,並且想要在鍵盤上添加一個TextView
以顯示用戶已輸入的內容或他想要輸入的單詞的建議。windowSoftInputMode =「adjustResize」導致自定義鍵盤佈局出現問題
爲了做到這一點,我有以下佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.inputmethodservice.KeyboardView
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:keyPreviewLayout="@layout/preview"
android:keyBackground="@drawable/key_background"
android:background="@color/color_primary"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/keyboard"
android:padding="8dp"
android:gravity="center"
android:background="@color/color_primary_dark"
android:textColor="@android:color/white"
android:text="some sample text"
/>
</RelativeLayout>
和下面的代碼在InputMethodService
:
public class FancyInputMethodService extends InputMethodService {
@Override
public View onCreateInputView() {
final RelativeLayout layout = (RelativeLayout) getLayoutInflater().inflate(R.layout.keyboard_layout, null);
final KeyboardView keyboardView = (KeyboardView) layout.findViewById(R.id.keyboard);
final Keyboard keyboard = new Keyboard(this, R.xml.qwerty);
keyboardView.setKeyboard(keyboard);
return layout;
}
}
在正常EditText
在屏幕上方的鍵盤看起來很好,效果很好:
但是,如果EditText
在Activity
中使用清單中的標誌android:windowSoftInputMode="adjustResize"
,則鍵盤視圖似乎覆蓋實際視圖而不是透明。
左邊的圖像顯示了軟鍵盤的實際視圖關閉時,中間的圖像顯示了怪異的行爲,當鍵盤打開,右邊的圖像顯示了默認的鍵盤行爲我會期待。
我已經嘗試將佈局背景設置爲透明,但這並沒有幫助。
該問題出現在多個應用程序中,例如, WhatsApp的,環聊,Facebook等...我錯過了什麼或錯在哪裏?