首页 > 解决方案 > 将两个视图放在屏幕中央

问题描述

我有两个视图(com.github.mikephil.charting.charts.BarChart 和 LinearLayout),一个视图内的内容大约 600 dp 高,另一个曾经有 500 dp。两个视图的宽度都是 fill_parent。

我想将它们都放在屏幕的中心(所以它们重叠)。

不幸的是,Android 的布局对齐非常不直观,对我来说是命中注定的,我无法做到这一点。

你能帮忙吗?

               <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:gravity="center"
                android:orientation="vertical"
                android:background="#11FFFFFF">

                <com.github.mikephil.charting.charts.BarChart
                    android:id="@+id/chart"
                    android:layout_width="match_parent"
                    android:layout_height="500dp"
                    />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal"
                    android:gravity="center">

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginRight="50dp"
                        android:orientation="vertical"
                        android:gravity="center">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textColor="#FFFFFF"
                            android:textSize="150dp"
                            android:includeFontPadding="false"/>

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="10dp"
                            android:text="HITS"
                            android:textAppearance="?android:attr/textAppearanceLarge"/>
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="50dp"
                        android:orientation="vertical"
                        android:gravity="center">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textColor="#FFFFFF"
                            android:textSize="150dp"
                            android:includeFontPadding="false"/>

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="10dp"
                            android:text="MISSED"
                            android:textAppearance="?android:attr/textAppearanceLarge"/>
                    </LinearLayout>
                </LinearLayout>

            </RelativeLayout>

我想将两个视图都放置在屏幕中心的这个 RelativeLayout 内,重叠

标签: androidandroid-layoutandroid-view

解决方案


将要放置在中间的 2 个视图放入 aRelativeLayout中,然后添加android:layout_centerInParent="true" 到 2 个视图中。

例如,它看起来像这样:

<RelativeLayout  
     android:layout_width="match_parent"
     android:layout_height="match_parent">
       <com.github.mikephil.charting.charts.BarChart
            ....all other stuff

            android:layout_centerInParent="true" > //..add this 


      <LinearLayout
           ..... all other stuff
           android:layout_centerInParent="true"  > //..add this 


      </LinearLayout>

</RelativeLayout>

推荐阅读