常用收藏

记:用ConstraintLayout实现消息小红点

2019-06-20  本文已影响0人  々土拨鼠

ConstraintLayout翻译为约束布局,也有人把它称作增强型的相对布局,由 2016 年 Google I/O 推出。扁平式的布局方式,无任何嵌套,减少布局的层级,优化渲染性能。从支持力度而言,将成为主流布局样式,完全代替其他布局。

消息小红点的实现方式有很多,比如在RelativeLayout中也可以,但是比较复杂,需要计算padding或margin,并且可能还不精确,下面就用ConstraintLayout实现消息小红点

首先是定义一个显示的View,如

<TextView

    android:id="@+id/tv_textView"

    android:layout_width="50dp"

    android:layout_height="50dp"

    android:background="@color/colorPrimary"

    android:gravity="center"

    android:text="文本"

    android:textColor="#fff"

    app:layout_constraintBottom_toBottomOf="parent"

    app:layout_constraintLeft_toLeftOf="parent"

    app:layout_constraintRight_toRightOf="parent"

    app:layout_constraintTop_toTopOf="parent" />

注:layout_constraintBottom_toBottomOf(控件的下方距离parent的下方)及剩下的3个属性,保证该View居中

然后就是显示消息数字的View

<TextView

    android:layout_width="20dp"

    android:layout_height="20dp"

    android:background="@drawable/round_shape"

    android:gravity="center"

    android:text="11"

    android:textColor="#fff"

    app:layout_constraintCircle="@id/tv_textView"

    app:layout_constraintCircleAngle="45"

    app:layout_constraintCircleRadius="35dp" />

注:layout_constraintCircle:引用的控件ID,因为红点显示肯定是要依附在另一个View上显示的

        layout_constraintCircleAngle:偏移圆角度 水平右方向为0逆时针方向旋转,45表示向右旋转45度

        layout_constraintCircleRadius:圆半径,可以理解为红点位置和所依附的View的距离,以此来

确定红点View的位置

引用一张说明图:

效果图:

上一篇 下一篇

猜你喜欢

热点阅读