Android:RelativeLayout相对布局实现水平方向一个控件居中,一个控件居右

@高效码农  April 26, 2019

在Android开发中经常遇到一个控件居中,一个控件居右的需求;如下原型图

2019-04-26T05:50:08.png

实现代码(目前只用RelativeLayout布局实现了)

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

                    <LinearLayout
                        android:id="@+id/nickname"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center">

                        <TextView
                            android:id="@+id/user_nickname"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/app_name"
                            android:textColor="@color/white" />

                        <ImageView
                            android:id="@+id/edit_img"
                            android:layout_width="@dimen/size_10dp"
                            android:layout_height="@dimen/size_10dp"
                            android:layout_marginStart="4dp"
                            android:contentDescription="@null"
                            android:src="@mipmap/ic_wd_bi" />
                    </LinearLayout>

                    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentEnd="true">

                        <TextView
                            android:id="@+id/mine_xuefen"
                            android:layout_width="wrap_content"
                            android:layout_height="22dp"
                            android:layout_marginEnd="-20dp"
                            android:background="@drawable/module_mine_button_credit"
                            android:gravity="center_vertical"
                            android:paddingLeft="25dp"
                            android:paddingRight="30dp"
                            android:text="0学分"
                            android:textColor="@color/textcolor_333333"
                            android:textSize="12sp" />

                        <ImageView
                            android:layout_width="15dp"
                            android:layout_height="15dp"
                            android:layout_centerVertical="true"
                            android:layout_marginStart="3dp"
                            android:contentDescription="@null"
                            android:src="@mipmap/ic_wd_xing" />
                    </RelativeLayout>
                </RelativeLayout>

需要注意的是:

第一个控件LinearLayout需要 android:gravity="center"
第二个控件RelativeLayout 需要android:layout_alignParentEnd="true"

layout_alignParentEnd和layout_alignParentRight 如果在Android Studio中使用layout_alignParentRight 会警告Consider replacing android:layout_alignParentRight with android:layout_alignParentEnd="true" to better support right-to-left layouts 意思是为了更好的支持阿拉伯语、波斯语等情况下从右往左的阅读方式,从Android 4.2( V 17)开始支持RTL(Right-To-Left)模式。将layout_alignParentRight 替换为layout_alignParentEnd即可。


评论已关闭