TextView setGravity()不';我不能用java工作

TextView setGravity()不';我不能用java工作,java,android,android-layout,bug-tracking,gravity,Java,Android,Android Layout,Bug Tracking,Gravity,我被一个问题困住了,我不知道是什么原因造成的。 我有一个非常简单的布局,如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orienta

我被一个问题困住了,我不知道是什么原因造成的。 我有一个非常简单的布局,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
    android:id="@+id/my_text_view"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_gravity="NOTE_THIS"
    android:textColor="#FFFFFF"
    android:textSize="22dp"
    android:text="TestText"/>
</LinearLayout>

它包含在另一个布局中。如果我改变xml中的重力,我会在布局编辑器和手机上看到相同的结果。如果我想以编程方式应用重力,就像使用
myTextView.setGravity(Gravity.CENTER)
一样,它不会改变任何东西。我不能在Java中的TextView上设置LayoutGravity

为了调试的目的,我会尝试将它们包含三次,每次使用另一个重力,它甚至可以工作。所以我假设我的布局一切都很好,肯定有一个Bug或者我错过了什么。
有人能给我一个提示吗?我还可以尝试什么,或者是什么导致了这个问题?

当您使用LinearLayout作为父级时,布局会出现在图片中,它对齐控件,但不对齐控件内的内容,
相反,使用
android:layout\u gravity
使用
android:gravity
将文本视图的宽度设置为
android:layout\u width=“fill\u parent”
,然后可以使用
myTextView.setGravity(gravity.CENTER)编程设置

您需要设置LayoutParams对象的重力,而不是视图本身:

TextView tv = new TextView(getApplicationContext());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
lp.gravity = Gravity.CENTER;
tv.setLayoutParams(lp);

啊,对不起,是我的错。。。我想设置LayoutGravity因为Gravity什么都不做。。。更新了我的问题在给文本视图“填充父对象”后,我如何才能获得文本视图的内部宽度,因为getWidth很早就给了我父对象的宽度。为什么只需要设置重力就可以了?因为它不仅设置重力,而是重新压缩文本,如果我得到正确的文本宽度“重新压缩文本”,这会起作用你的意思是它也会改变文本大小吗?这应该是不可能的