我在horizontalScrollview中将5个editText放在linearLayout中。
当editText右对齐并且数字为inputtype时,当editText获得焦点时,scrollview会完全向右滚动,即使这意味着edittext要离开视图
我做了不同的测试,似乎只有在编辑文本右对齐且输入类型为数字时才会发生。
滚动视图向左滚动,键盘被隐藏,当我点击第一个editText时,滚动视图向右滚动,隐藏当前聚焦的编辑文本
编辑:问题发生在设备Nexus 7(2012)6.0.1和仿真器Nexus 7 5.1和4.4.2上。它在设备Galaxy Tab3 4.4.2
上工作正常如果你想尝试,这就是布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<HorizontalScrollView
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/contentContainer"
android:fillViewport="true">
<LinearLayout
android:orientation="horizontal"
android:id="@+id/mainContentContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusableInTouchMode="false"
android:focusable="false">
<TextView
android:text="Test"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/textView1"
android:lines="1" />
<EditText
android:layout_width="250dp"
android:layout_height="wrap_content"
android:id="@+id/editText1"
android:hint="1"
android:inputType="number"
android:gravity="right" />
<EditText
android:layout_width="250dp"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:hint="2"
android:inputType="number"
android:gravity="right" />
<EditText
android:layout_width="250dp"
android:layout_height="wrap_content"
android:id="@+id/editText3"
android:hint="3"
android:inputType="number"
android:gravity="right" />
<EditText
android:layout_width="250dp"
android:layout_height="wrap_content"
android:id="@+id/editText4"
android:hint="4"
android:inputType="number"
android:gravity="right" />
<EditText
android:layout_width="250dp"
android:layout_height="wrap_content"
android:id="@+id/editText5"
android:hint="5"
android:inputType="number"
android:gravity="right" />
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
答案 0 :(得分:0)
我一直在处理同样的问题。有趣的是,这个问题并没有发生在Android 7上。
我的解决方案/解决方法(远非完美)是抛弃inputType而是使用仅限于数字的keylistener。
在我的情况下,我在java中这样做并替换了这一行
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
有了这个
setKeyListener(DigitsKeyListener.getInstance("0123456789./-"));
在没有意外滚动
的情况下我做了什么