用于Java中TextView的Android layout_gravity

时间:2016-12-17 13:28:14

标签: android layout-gravity

我想更改 TextView 布局重力
通过XML,您可以通过android:layout_gravity="value"执行此操作 我知道,为了改变 gravity 本身,通过XML,你做android:gravity="value",而用Java做textview.setGravity(Gravity.VALUE);
但遗憾的是,没有textview.setLayoutGravity(VALUE);,所以我被卡住了 谢谢!

4 个答案:

答案 0 :(得分:3)

您需要使用正确的子类。例如,如果您的TextView位于FrameLayout,则需要:

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                                  |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
---------------------------------------------

示例2:

<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                 |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
|                                           |
---------------------------------------------

答案 1 :(得分:2)

以编程方式设置layout_gravity

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

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

答案 2 :(得分:0)

在线性布局中使用:

android:layout_gravity="value"

在相对布局中使用属性:

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

根据您的要求

答案 3 :(得分:0)

TextView被一个被ScrollView包围的Horizo​​ntalScrollView包围 我发现没有任何效果,直到我在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);

它解决了我的问题。

非常感谢大家!