Android 自定义键盘未调整大小 window 问题
Android Custom Keyboard not resizing the window Issue
您好,我正在关注 this link 以实施 CustomKeyboard
。一切都很完美,除非我的布局中有 EditTexts
的数量。当 keyboard
出现时,window 没有调整大小,假设我正在尝试向 EditTexts
输入数据,但位于底部的数据会被 keyboard
覆盖。调整 resize
和使用 manifest
调整平移等解决方案在这种情况下不起作用,我也尝试将 ScrollView
放入 layout
,但没有得到任何解决方案。请看下面给出的我的布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/edittext0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext0"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/txt"
android:inputType="text" />
<EditText
android:id="@+id/edittext2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext1"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/txt"
android:inputType="text" />
<EditText
android:id="@+id/edittext3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext2"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext3"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext5"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext7"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext6"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext8"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext7"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<!-- NOTE No need to develop a system service for keyboard, there is a standard View for that (well, not completely standard, its in a funny package 'android.inputmethodservice'. -->
<!-- NOTE The graphical layout does not know the package ('java.lang.NoClassDefFoundError: Could not initialize class android.inputmethodservice.KeyboardView') so the keyboard is not shown. -->
<!-- <android.inputmethodservice.KeyboardView
android:id="@+id/keyboardview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:visibility="gone"
android:background="@drawable/normal"/>
-->
<nl.fampennings.keyboard.CustomKeyboardView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/keyboardview"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:visibility="gone"
android:keyBackground="@drawable/samplekeybackground"/>
请帮我解决。谢谢。
好的,我得到了解决方案。请找到修改后的布局代码。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/edittext0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext0"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/txt"
android:inputType="text" />
<EditText
android:id="@+id/edittext2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext1"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/txt"
android:inputType="text" />
<EditText
android:id="@+id/edittext3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext2"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext3"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext5"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext7"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext6"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext8"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext7"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
</LinearLayout>
</ScrollView>
<nl.fampennings.keyboard.CustomKeyboardView
android:id="@+id/keyboardview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:keyBackground="@drawable/samplekeybackground"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>
添加一个linearLayout作为主父布局的子布局;向该布局添加一个权重为 1 的滚动视图,并将另一个布局添加到滚动视图作为子项(如 EditTexts 等)的容器。键盘视图应添加到与 scrollView 包含的布局相同的布局中。我希望该解决方案对某人有所帮助。
您好,我正在关注 this link 以实施 CustomKeyboard
。一切都很完美,除非我的布局中有 EditTexts
的数量。当 keyboard
出现时,window 没有调整大小,假设我正在尝试向 EditTexts
输入数据,但位于底部的数据会被 keyboard
覆盖。调整 resize
和使用 manifest
调整平移等解决方案在这种情况下不起作用,我也尝试将 ScrollView
放入 layout
,但没有得到任何解决方案。请看下面给出的我的布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/edittext0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext0"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/txt"
android:inputType="text" />
<EditText
android:id="@+id/edittext2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext1"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/txt"
android:inputType="text" />
<EditText
android:id="@+id/edittext3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext2"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext3"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext5"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext7"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext6"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext8"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext7"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<!-- NOTE No need to develop a system service for keyboard, there is a standard View for that (well, not completely standard, its in a funny package 'android.inputmethodservice'. -->
<!-- NOTE The graphical layout does not know the package ('java.lang.NoClassDefFoundError: Could not initialize class android.inputmethodservice.KeyboardView') so the keyboard is not shown. -->
<!-- <android.inputmethodservice.KeyboardView
android:id="@+id/keyboardview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:visibility="gone"
android:background="@drawable/normal"/>
-->
<nl.fampennings.keyboard.CustomKeyboardView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/keyboardview"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:visibility="gone"
android:keyBackground="@drawable/samplekeybackground"/>
请帮我解决。谢谢。
好的,我得到了解决方案。请找到修改后的布局代码。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_weight="1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/edittext0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext0"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/txt"
android:inputType="text" />
<EditText
android:id="@+id/edittext2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext1"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/txt"
android:inputType="text" />
<EditText
android:id="@+id/edittext3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext2"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext3"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext6"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext5"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext7"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext6"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
<EditText
android:id="@+id/edittext8"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext7"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/hex"
android:inputType="text" />
</LinearLayout>
</ScrollView>
<nl.fampennings.keyboard.CustomKeyboardView
android:id="@+id/keyboardview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:keyBackground="@drawable/samplekeybackground"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>
添加一个linearLayout作为主父布局的子布局;向该布局添加一个权重为 1 的滚动视图,并将另一个布局添加到滚动视图作为子项(如 EditTexts 等)的容器。键盘视图应添加到与 scrollView 包含的布局相同的布局中。我希望该解决方案对某人有所帮助。