Android 使Textview等其他控件重叠,在布局的正上方中间

      项目中需要时一个textview居于layout布局的正中间部分,如下图所示:

     使用相对布局的形式,可以使控件居于左上角和右上角,但就是无法居于布局的正中间的上方,会被覆盖掉,原先的布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/firstSupspendLine"
    android:layout_width="210dp"
    android:layout_height="80dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="5dp"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/firstSupspend"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="@drawable/chart_pair_left1"
            android:gravity="center"
            android:text="测试"
            android:textColor="#FFFFFF"
            android:textSize="12sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="@color/main_chart_color"
            android:gravity="center"
            android:text="GBP/CHF"
            android:textColor="#FFFFFF"
            android:textSize="12sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:background="@drawable/chart_pair_right3"
            android:gravity="center"
            android:text="测试"
            android:textColor="#FFFFFF"
            android:textSize="12sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="32dp"
        android:orientation="horizontal" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/chart_pair_left2"
            android:orientation="vertical" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:gravity="center"
                android:text="80.89"
                android:textColor="#FFFFFF"
                android:textSize="16sp" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/chart_pair_right2"
            android:orientation="vertical" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:gravity="center"
                android:text="168.45"
                android:textColor="#48434A"
                android:textSize="16sp" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
这样的布局的基础上,无法实现上述的叠加功能,只能各种百度,突然发现可以使用帧布局 FrameLayout,因为所有的控件或者布局都是以左上角不断的重叠,所以可以利用这一点,设置我的控件的重叠,调整一下布局和距离就可以解决重叠问题,修改后的布局如下:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/firstSupspendLine"
    android:layout_width="194dp"
    android:layout_height="55dp"
    android:layout_marginTop="5dp" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:id="@+id/sellMktt"
            android:layout_width="97dp"
            android:layout_height="55dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_weight="1"
            android:background="@drawable/pair_sell_select"
            android:orientation="vertical" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="2dp"
                android:gravity="left"
                android:text="@string/activity_price_pricewarning_add4modify_sellprice"
                android:textColor="@color/white"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/price_quote_sellprice"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="0.7023"
                android:textSize="22sp"
                android:textStyle="bold" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/buyMktt"
            android:layout_width="95dp"
            android:layout_height="55dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="2dp"
            android:layout_weight="1"
            android:background="@drawable/ordertrade_pair_buy_select"
            android:orientation="vertical" >

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp"
                android:layout_marginTop="2dp"
                android:gravity="right"
                android:text="@string/activity_price_pricewarning_add4modify_buyprice"
                android:textColor="@color/gray"
                android:textSize="12sp" />

            <TextView
                android:id="@+id/price_quote_buyprice"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="0.7023"
                android:textSize="22sp"
                android:textStyle="bold" />
        </LinearLayout>
    </RelativeLayout>

    <TextView
        android:layout_width="70dp"
        android:layout_height="23dp"
        android:layout_gravity="center_horizontal"
        android:background="@color/main_chart_color"
        android:gravity="center"
        android:text="AUD/CHF"
        android:textColor="#FFFFFF"
        android:textSize="12sp" />

</FrameLayout>


以前觉得这个布局基本上没有什么用,只是一直在用的是relativelayout和linearlayout两个布局,这个Fragmelayout帧布局关键时候还是发挥了作用的,记录一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值