Android layout_gravity 对于 Java 中的 TextView

Android layout_gravity for TextView in Java

我想更改 TextViewlayout gravity
通过 XML,您可以通过 android:layout_gravity="value".
我知道为了改变 gravity 本身,通过 XML 你会做 android:gravity="value",而在 Java 你会做 textview.setGravity(Gravity.VALUE);
但遗憾的是,没有 textview.setLayoutGravity(VALUE);,所以我被困住了。
谢谢!

在线性布局中使用:

android:layout_gravity="value"

在相对布局中使用属性:

android:layout_centerHorizontal="true"
android:layout_centerVertical="true" 
android:layout_centerInParent="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"

根据您的要求

以编程方式设置 layout_gravity

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
youttextview.setLayoutParams(params);   

注意:layout_gravity不适用于相对布局

您需要使用正确的子class。例如,如果您的 TextViewFrameLayout 中,您需要:

FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) textView.getLayoutParams();
params.gravity = Gravity.CENTER;
textView.setLayoutParams(params);

请注意,layout_gravitysetLayoutGravity 会在其父元素中设置当前元素的引力,gravitysetGravity 会在元素内设置当前元素内容的引力。有关详细信息,请参阅下图。

示例 1:

<FrameLayout
    android:layout_width="400dp"
    android:layout_height="400dp">

    <TextView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:text="Some Text" />

</FrameLayout>

---------------------------------------------
|Some Text                                  |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
---------------------------------------------

例二:

<FrameLayout
    android:layout_width="400dp"
    android:layout_height="400dp">

    <TextView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:text="Some Text" />

</FrameLayout>

---------------------------------------------
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|            Some Text                      |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
---------------------------------------------

示例 3:

<FrameLayout
    android:layout_width="400dp"
    android:layout_height="400dp">

    <TextView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="Some Text" />

</FrameLayout>

---------------------------------------------
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                 Some Text                 |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
---------------------------------------------

例4:

<FrameLayout
    android:layout_width="400dp"
    android:layout_height="400dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Some Text" />

</FrameLayout>

---------------------------------------------
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                 Some Text                 |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
---------------------------------------------

例5:

<FrameLayout
    android:layout_width="400dp"
    android:layout_height="400dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="Some Text" />

</FrameLayout>

---------------------------------------------
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                 Some Text                 |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
---------------------------------------------

TextView 被 Horizo​​ntalScrollView 包围,而 Horizo​​ntalScrollView 又被 ScrollView 包围。
我发现没有任何效果,直到我在XML文件中设置:

<ScrollView
    android:id="@+id/scrollView"
    android:layout_width="match_parent" <!-- The value was "wrap_content" before, hence couldn't work -->
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/submit"
    android:visibility="visible">
    <!-- Some more code -->

后来,我简单地使用了:

textview.setGravity(Gravity.LEFT);
textview.setTextDirection(View.TEXT_DIRECTION_LTR);

它解决了我的问题。

非常感谢大家!