如何在运行时将 android : layout_centerHorizontal = "true" 更改为 "false"

how to change android : layout_centerHorizontal = "true" to "false" at runtime

我想知道如何动态更改 layout_centerHorizontal 我的 FrameLayout。

<FrameLayout
    android:id="@+id/myFrameLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerHorizontal="true"
    >
</FrameLayout>

使用以下示例代码更改 RelativeLayout 中视图的属性 ,

    RelativeLayout.LayoutParams params = (LayoutParams) myFrameLayout.getLayoutParams();//get old parameters
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, 0);//change parameter
    myFrameLayout.setLayoutParams(params);//set new parameters

Click to learn more about RelativeLayout.LayoutParams

android:layout_centerHorizontal用于父布局,这意味着它的父布局必须是 RelativeLayout 而不是它自己。 下面的示例代码对我来说很好(表示为 RelativeLayout.TRUE 表示 true 或 0 表示 false):

TextView mTextView = (TextView) findViewById(R.id.textView);
    RelativeLayout.LayoutParams rl = (LayoutParams) mTextView.getLayoutParams();
    rl.addRule(RelativeLayout.CENTER_HORIZONTAL, 0);
    mTextView.setLayoutParams(rl);