以编程方式设置Textview的属性

3
我已经通过编程方式创建了5个TextView,现在我想设置它们的一些参数/属性,例如Gravity、Layout_Gravity等。我知道我们可以在设计时在XML布局中设置它们:
android:gravity="center|center_horizontal|center_vertical"
android:layout_gravity="center|center_horizontal|center_vertical"

但是,我们如何以编程的方式设置重力/布局重力等属性呢?

2个回答

4
你可以使用 setGravity(int) 方法在程序中设置 TextView 的 gravity 属性。

也许你可以像这样设置 layout_gravity (我尚未测试):

TextView 可以使用 layout_gravity 方法告诉其父级关于布局偏好的信息。

setLayoutParams(ViewGroup.LayoutParams params)
LayoutParams params=new LayoutParams(this, attrSet);
tv.setLayoutParams(params);

1
补充一下suresh所说的,我没有看到直接设置layout_gravity的方法。你可以看到在文档中android:layout_gravity没有任何直接的Java相关方法,而android:gravity有一个。http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html - DeRagan
layout_gravity是为ViewGroup设计的,但TextView不是ViewGroup,因此为其设置layout_gravity是否正确? - Suresh
TextView可能位于ViewGroup内。我们这里没有发布布局。无论如何,FrameLayout可以在布局参数中接受gravity... 你可以检查一下是否有帮助。 http://developer.android.com/reference/android/widget/FrameLayout.LayoutParams.html#FrameLayout.LayoutParams%28int,%20int,%20int%29 https://dev59.com/NHA85IYBdhLWcg3wF_gO - DeRagan
你可以使用 setLayoutParams(ViewGroup.LayoutParams params) 来设置 layout_gravity。 - Suresh
1
那取决于所使用的布局。LinearLayout和RelativeLayout不能在setLayoutParams中接受gravity参数,而FrameLayout可以,根据文档http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#RelativeLayout.LayoutParams%28android.view.ViewGroup.LayoutParams%29 http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#LinearLayout.LayoutParams%28int,%20int,%20float%29 - DeRagan

0

所有的内容都在文档中。例如,在“XML属性”下面查看视图文档,您将看到所有的XML属性以及在代码中需要调用的相应方法,以达到相同的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接