我正在开发Android应用程序,但我遇到了一些无法解决的问题。
在xml中,我有RelativeLayout
一个EditText
,动态地我必须插入一两个EditText
,具体取决于变量值。
问题
问题在于,当我在第一个(在xml中声明的那个)上方插入一个EditText
时,它会获得如此高的高度,我看不到它的结束,我无法理解为什么会这样。
这是我最新的代码:
activity.xml
<!-- Some other layouts -->
<RelativeLayout
android:id="@+id/relativeLayoutLectura1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/linearLayoutMensajeLectura"
android:layout_marginLeft="25dp"
android:layout_marginRight="25dp"
android:layout_marginTop="10dp">
<EditText
android:id="@+id/editTextLectura1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/introducir_lectura"
android:textSize="@dimen/textSize" />
</RelativeLayout>
<!-- More layouts -->
Activity.java
if(lecturas > 1) {
// Have to insert lecturas-1 EditText
RelativeLayout parentLayout = (RelativeLayout)
findViewById(R.id.relativeLayoutLectura1);
for(int lectura = 2; lectura < lecturas; lectura++) {
EditText editTextLectura = new EditText(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
if(lectura == 2) {
//Insert below the one created in xml
params.addRule(RelativeLayout.BELOW, R.id.editTextLectura1);
} else {
//Insert below the one created in previous iteration
params.addRule(RelativeLayout.BELOW, lectura-1);
}
editTextLectura.setLayoutParams(params);
editTextLectura.setId(lectura);
editTextLectura.setHint(R.string.introducir_lectura);
editTextLectura.setTextSize(R.dimen.textSize);
//Add to layout
parentLayout.addView(editTextLectura);
}
}
你可以帮我找到问题吗?正确看到在xml中创建的EditText
,并且由代码创建的{{1}}设置在正确的位置。
答案 0 :(得分:0)
我找到了解决方案!我用:
editTextLectura.setTextSize(R.dimen.textSize);
textSize
在dimen文件中声明:
<resources>
<!-- Other dimen -->
<dimen name="textSize">15dp</dimen>
</resources>
并且,正如您所看到的,我也在xml中使用它,它运行正常:
<EditText ...
android:textSize="@dimen/textSize" />
我不知道为什么,但如果我在15dp
代码上放R.dimen.textSize
而不是Activity
,那就没关系。
如果有人能解释,我会很高兴。