RelativeLayout布局上下两控件左右对齐的方法

本文介绍如何在Android的RelativeLayout中实现上下两个控件(如ImageView和TextView)无缝上下布局并保持左右对齐。问题在于TextView的内容长度决定了pop dialog的长度,因此需要在布局时确保两个控件左右对齐。然而,直接将ImageView置于TextView上方并设置对齐会导致错误,因为TextView的宽度在布局时未知。解决方法是将TextView置于ImageView下方,通过布局设置实现对齐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   前段工作时,遇到一个布局困惑:有两个控件,上面是一个imageview,显示一个图片,现在是一个textview,显示一句话。这里两个控件要无缝上下布局,呈现出来的就是pop dialog的样子。所以需要上下两个控件左右对齐。

 

   上面的控件是个imageview,那么这个pop的长度实际上是由下面的textview中内容的长度来决定的。所以需要第一个控件与第二个控件左右对齐才行。

大家尝试的时候会发现,如果是按照这个顺序,将imageview放在上面,而textview放在下面,imageview设置为于textview左右对齐是错误的。因为在对齐的时候,下面的控件还未定义,属于不可知的。

所以我采用的方法如下,让textview所在的布局位于imageview的下面,如果设置imageview在textview的上面是行不通的,大家可以试试看:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
	android:id="@+id/noButton"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="center_vertical|center_horizontal"
    android:background="@android:color/transparent"	>


	<TextView
    	android:id="@+id/alert_content_full"
    	android:layout_width="wrap_content" 
    	android:layout_height="wrap_content" 
    	android:textAppearance="@style/tcl_toast_text"
    	android:background="@drawable/tcl_alert_content_rec"
     	android:layout_below="@+id/alert_title_full"
     	android:paddingLeft="30dp"
	android:paddingRight="30dp"
   	android:text="11111111111111222222222222222222222222223333333333333333333"/>
               
   	<ImageView 
	    android:id="@+id/alert_title_full" 
	    android:layout_width="wrap_content" 
	    android:layout_height="wrap_content" 
	    android:minHeight="50dip"
	
	    android:layout_alignLeft="@+id/alert_content_full"
	    android:layout_alignRight="@+id/alert_content_full"
	    android:background="@drawable/tcl_alert_title" 
    > 
    </ImageView>
</RelativeLayout> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值