android RelativeLayout 控件绕中心点布局

简介: android RelativeLayout 控件绕中心点布局

平台


Android + AndroidStudio


概述


RelativeLayout是常见的布局容器, 使用起来相当灵活. 在之前的开发过程中, 用过类似RelativeLayout(相对布局)一文中提及的 “梅花” 布局, 屡试不爽, 只是, 在最近的一段测试代码中突然发现, 它不香了, “梅花” 不见了…


正常的 “梅花”


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <View android:id="@+id/center"
        android:layout_centerInParent="true"
        android:layout_width="50dp"
        android:layout_height="50dp"/>
    <!-- LEFT RED-->
    <View android:layout_toLeftOf="@id/center"
        android:layout_centerVertical="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FFFF0000"/>
    <!-- TOP GREEN-->
    <View android:layout_above="@id/center"
        android:layout_centerHorizontal="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FF00FF00"/>
    <!-- RIGHT BLUE-->
    <View android:layout_toRightOf="@id/center"
        android:layout_centerVertical="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FF0000FF"/>
    <!-- BOTTOM WHITE-->
    <View android:layout_below="@id/center"
        android:layout_centerHorizontal="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FFFFFFFF"/>
</RelativeLayout>

image.png


问题


失败的梅花


image.png


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <View android:id="@+id/center"
        android:layout_centerInParent="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FF000000"/>
    <!-- LEFT -->
    <View android:layout_toLeftOf="@id/center"
        android:layout_centerVertical="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FFFF0000"/>
    <!-- TOP -->
    <View android:layout_above="@id/center"
        android:layout_centerHorizontal="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FF00FF00"/>
    <!-- RIGHT -->
    <View android:layout_toRightOf="@id/center"
        android:layout_centerVertical="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FF0000FF"/>
    <!-- BOTTOM -->
    <View android:layout_below="@id/center"
        android:layout_centerHorizontal="true"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FFFFFFFF"/>
</RelativeLayout>


问题的根源就在于:

image.png

控件的大小使用了wrap_content导致.


在后续测试代码中, 不管是宽还是高使用wrap_content均会导致对应边的布局效果超出预期, 谨慎谨慎!


相关文章
|
1月前
|
XML Android开发 数据格式
Android六大布局
Android六大布局
37 1
|
1天前
|
开发框架 搜索推荐 .NET
Android之ListActivity 布局与数据绑定
Android之ListActivity 布局与数据绑定
|
1天前
|
Android开发 容器
Android Layout 布局
Android Layout 布局
|
2天前
|
搜索推荐 Android开发
自定义Android标题栏TitleBar布局
自定义Android标题栏TitleBar布局
|
2天前
|
XML Java Android开发
Android控件动态使用 (转)
Android控件动态使用 (转)
|
2天前
|
XML Android开发 数据格式
Android五大布局对象---FrameLayout,LinearLayout ,Absolute
Android五大布局对象---FrameLayout,LinearLayout ,Absolute
|
1月前
|
XML Java Android开发
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
|
1月前
|
XML 数据可视化 Java
Android布局——线性布局、相对布局、帧布局、表格布局、网格布局、约束布局
Android布局——线性布局、相对布局、帧布局、表格布局、网格布局、约束布局
|
1月前
|
XML 编解码 Java
Android控件之高级控件——ListView、cardView、屏幕适配
Android控件之高级控件——ListView、cardView、屏幕适配
|
1月前
|
Android开发
Android控件——Checkbox复选框、RadioButton单选、ToggleButton开关、SeekBar拖动条
Android控件——Checkbox复选框、RadioButton单选、ToggleButton开关、SeekBar拖动条