Java 带EditText的水平滚动视图跳到右侧

Java 带EditText的水平滚动视图跳到右侧,java,android,xml,user-interface,layout,Java,Android,Xml,User Interface,Layout,我对水平滚动视图和编辑文本内部有一些问题。当我开始键入HorizontalScrollView时,会跳到右侧,编辑EditText会消失,尽管焦点不会丢失。但是,如果我删除editText.setGravity(Gravity.CENTER)所有操作都正常。我读过关于重写scrollTo()的内容,但我想知道为什么会发生这种情况,并消除原因而不是后果 以下是示例代码: R.layout.activity\u main: <HorizontalScrollView xmlns:android

我对
水平滚动视图
编辑文本
内部有一些问题。当我开始键入
HorizontalScrollView
时,会跳到右侧,编辑
EditText
会消失,尽管焦点不会丢失。但是,如果我删除
editText.setGravity(Gravity.CENTER)
所有操作都正常。我读过关于重写
scrollTo()
的内容,但我想知道为什么会发生这种情况,并消除原因而不是后果

以下是示例代码:

R.layout.activity\u main:

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:id="@+id/llRowSearch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
</LinearLayout>

公共类MainActivity扩展了ActionBarActivity{
私人线路布局图,行搜索;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
llRowSearch=(LinearLayout)findViewById(R.id.llRowSearch);
对于(int i=0;i<20;i++){
EditText EditText=新的EditText(本);
editText.setLayoutParams(新的LayoutParams(500,
LayoutParams.MATCH_PARENT));
editText.setInputType(InputType.TYPE\类别\编号
|InputType.TYPE\u编号\u标志\u小数
|输入类型。类型\编号\标志\签名);
editText.setGravity(Gravity.CENTER);
llRowSearch.addView(editText);
}
}
}

当我们将InputType与水平滚动视图中的重力相结合时,InputType是罪魁祸首

将android:digits=“0123456789.”添加到编辑文本中,它将不会跳转

public class MainActivity extends ActionBarActivity {
private LinearLayout llRowSearch;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    llRowSearch = (LinearLayout) findViewById(R.id.llRowSearch);

    for (int i = 0; i < 20; i++) {
        EditText editText = new EditText(this);
        editText.setLayoutParams(new LayoutParams(500,
                LayoutParams.MATCH_PARENT));
        editText.setInputType(InputType.TYPE_CLASS_NUMBER
                | InputType.TYPE_NUMBER_FLAG_DECIMAL
                | InputType.TYPE_NUMBER_FLAG_SIGNED);
        editText.setGravity(Gravity.CENTER);
        llRowSearch.addView(editText);
    }
}
}