是否可以为具有相同ID的多个textview设置文本大小?我有他们与android:id:“@ + id / lbl”?实际上我根据文件夹值/ dimen.xml设置了dp
TextView lbl=(TextView) findViewById(R.id.lbl);
lbl.setTextSize(dp);
第一个textview只能获得此效果,但textview的其余部分不会产生这种效果。让我知道如何解决这个问题。
答案 0 :(得分:1)
您需要单独执行此操作,因为每个activty / fragment / adapter都有自己的布局(xml)。在R.java中,他们将拥有自己独特的数字。
android:textSize="24sp"
每次在XML中添加视图时,只需添加文本大小
即可答案 1 :(得分:1)
在android平台中,每个视图必须具有由" android:id"标识的唯一ID。视图属性。虽然你能够定义多个具有相同id但具有android第一声明的视图,并将其余视图保留为没有id。 让我们现在有一个例子:
<TextView
android:id="@+id/response_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="27dp"
android:layout_toLeftOf="@+id/scan_format"
android:text="TextView" />
<TextView
android:id="@+id/response_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/response_text"
android:layout_marginBottom="74dp"
android:layout_toLeftOf="@+id/response_text"
android:text="Trepeattet" />
这里有两个具有相同id的textview,现在看到R.java
public static final int radio=0x7f05002f;
public static final int response_text=0x7f050040;
public static final int scan_button=0x7f05003c;
public static final int scan_content=0x7f05003e;
public static final int scan_format=0x7f05003d;
在R.java中,只有一个textview声明了它的id(当你第一次运行你的代码时,这个hex id是由平台编译器本身创建的。)
因此虽然应用程序在编译时或运行时没有产生任何错误,但是对于具有相同id的任何其他视图都不会做任何事情,除非是第一个,因为只有一个可用的引用属于第一个textview。
根据this帖子,您可以执行以下操作:
视图ID是普通整数,因此您可以只想要更改一组ID。例如:
int[] ids = { R.id.lbl1, R.id.lbl2, ... };
for (int id: ids) {
TextView lbl=(TextView) findViewById(id);
lbl.setTextSize(dp);
}
这样可行。
答案 2 :(得分:0)
您可以获取父视图的所有TextView。然后在循环中检查它们的ID