1. 程式人生 > >Android FrameLayout佈局中的控制元件設定居中動態設定

Android FrameLayout佈局中的控制元件設定居中動態設定

Android FrameLayout 佈局檔案靜態設定裡面的控制元件時是預設左上角疊加的。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:background="@color/black">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HelloWorld"
        android:textColor="@color/white"
        android:textSize="18sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is HelloWorld"
        android:textColor="@color/white"
        android:textSize="18sp" />

</FrameLayout>

靜態佈局檔案設定居中時只需要設定裡面控制元件的layout_gravity:

 <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="This is HelloWorld"
        android:textColor="@color/white"
        android:textSize="18sp" />

程式碼中動態設定。(動態新增控制元件的處理方案):

   FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) textView.getLayoutParams();
            // 設定裡面的控制元件的佈局和父佈局的高度相同   
            layoutParams.height = FrameLayout.LayoutParams.MATCH_PARENT;
            textView.setLayoutParams(layoutParams);
            // 設定控制元件自身的內容居中
            textView.setGravity(Gravity.CENTER );