无法在RelativeLayout中居中心视图

时间:2014-07-17 10:51:33

标签: java android android-layout android-relativelayout

我正在尝试将视图置于父RelativeLayout中:

private void addLoadingAnimation() {
    RelativeLayout mainView = (RelativeLayout) findViewById(R.id.medical_supply_tile_activity);
    mainView.removeAllViews();
    GifView gifView = new GifView(this);
    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);
    gifView.setId(R.id.loading_gif);
    mainView.setBackgroundColor(getResources().getColor(android.R.color.background_light));
    mainView.addView(gifView,layoutParams);
}

我还尝试在layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 0);行之前添加CENTER_IN_PARENT。似乎没有什么工作。它始终与右下角对齐。

这是我的父视图:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/background_light"
    tools:context=".MedecineTileActivity"
    android:id="@id/medical_supply_tile_activity"
    android:layout_gravity="left">    
</RelativeLayout>

gravity=left是因为当删除加载动画时,我插入片段并希望它们向左移动。

1 个答案:

答案 0 :(得分:0)

我通过TextViews和ImageViews实现了这一点,将子视图右侧与父级右侧对齐,并将子视图左侧与父级左侧对齐。

<TextView
            style="@style/NewTextM2"
            android:id="@+id/soft_dialog_info_item_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/<Parent>"
            android:layout_alignLeft="@+id/<Parent>"
            android:layout_alignRight="@+id/<Parent>"
            android:gravity="center"
            android:tag="item_text"
            android:text="@string/text"
            android:maxLines="1" />

这会将视图与父级的底部中心对齐。