使用clipChildren实现仿微信的未读消息列表显式布局

来源:互联网 发布:fkled编辑软件下载 编辑:程序博客网 时间:2024/05/24 04:34

做IM项目是遇到了一个问题就是让那个个未读消息显示在他的父类外面,类似微信的未读消息数显式布局,弄了好久都不知道怎么搞,用其它方法因为要达到适配的原因所以放弃了最后老大告诉我加一个;

代码如下:

<span style="color:#4b4b4b;"><LinearLayout     android:id="@+id/msg_item_layout"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        android:paddingBottom="5dp"    android:paddingTop="5dp"    </span><span style="color:#ff0000;">android:clipChildren="false"</span><span style="color:#4b4b4b;">    android:background="@drawable/cover_selector"        >                <RelativeLayout             android:id="@+id/icon_layout"            android:layout_width="50dp"    android:layout_height="50dp"    android:layout_gravity="center_vertical">            <Button          android:id="@+id/preview"          android:layout_width="match_parent"         android:layout_height="match_parent"         android:clickable="false"         android:focusable="false"/>        <TextView                  android:id="@+id/info_unread"                 android:layout_width="18dp"                 android:layout_height="18dp"                 android:layout_marginTop="-6dp"                 android:layout_marginRight="-6dp"                 android:textColor="@color/white"                 android:textSize="10sp"                 android:singleLine="false"                 android:gravity="center"                 android:layout_alignParentTop="true"                android:layout_alignParentRight="true"                android:background="@drawable/unread_bg" />        </RelativeLayout>    <LinearLayout        android:layout_width="0dp"        android:layout_weight="1"        android:layout_height="wrap_content"        android:layout_gravity="center_vertical"        android:layout_marginLeft="8dp"        android:orientation="vertical" >        <RelativeLayout             android:id="@+id/title_layout"            android:layout_width="fill_parent"            android:layout_height="fill_parent" >                <TextView          android:id="@+id/time"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:textColor="@color/gray"         android:textSize="10sp"         android:singleLine="true"         android:paddingRight="10dp"         android:layout_alignParentRight="true"         android:layout_centerVertical="true"         />            <TextView          android:id="@+id/title"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:textColor="@color/black"         android:textSize="23sp"         android:singleLine="true"         android:ellipsize="end"         android:gravity="center|left"         android:layout_marginTop="5dp"         android:paddingLeft="5dp"         android:layout_toLeftOf="@id/time"         android:layout_alignParentLeft="true"         android:layout_centerVertical="true" />        </RelativeLayout>                 <TextView                  android:id="@+id/info"                 android:layout_width="fill_parent"                 android:layout_height="wrap_content"                 android:textColor="@color/gray"                 android:textSize="18dp"                 android:singleLine="true"                 android:layout_gravity="center"                 android:gravity="center|left"                 android:layout_marginTop="3dp"                 android:layout_marginRight="3dp"                 android:paddingLeft="5dp"/>    </LinearLayout>     </LinearLayout></span>

代码说明:

1、只需在根节点设置android:clipChildren为false即可,默认为true

2、可以通过android:layout_gravity控制超出的部分如何显示。

3、android:clipChildren的意思:是否限制子View在其范围内



效果如下:



当然还有其他使用方法,这些需要慢慢积累的。

0 0
原创粉丝点击