Android如何动态地集中EditText

时间:2013-07-08 08:09:02

标签: android layout android-edittext relativelayout center

目标

我有一个RelativeLayout和一些TextView的xml集合,我想动态添加一些EditText,一个在另一个下面。

问题

如何将这些EditText水平居中?

代码

这是我最新的代码:

/* Layout with EditText's */
RelativeLayout parentLayout = (RelativeLayout)
findViewById(R.id.relativeLayoutLectura);
EditText editText = new EditText(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
// If it's first EditText to insert, goes below another linearLayout set before
if(id == -1) {
    editText.setId(1);
    params.addRule(RelativeLayout.BELOW, R.id.linearLayoutMensajeLectura);
} else {
    editText.setId(id);
    params.addRule(RelativeLayout.BELOW, id-1);
}
editText.setLayoutParams(params);
editText.setGravity(Gravity.CENTER_HORIZONTAL); //It does nothing
parentLayout.addView(editText);

提前致谢。

1 个答案:

答案 0 :(得分:0)

设置编辑文本的重力将影响文本在其中显示的位置。

当您将其放入RelativeLayout时,您需要params.addRule(RelativeLayout.CENTER_IN_PARENT)params.addRule(RelativeLayout.CENTER_HORIZONTAL)