天天看点

Android 4.0 Notification内容过长被截断,无法完整显示

前言

         欢迎大家我分享和推荐好用的代码段~~

声明

         欢迎转载,但请保留文章原始出处:

         CSDN:http://www.csdn.net

         雨季o莫忧离:http://blog.csdn.net/luckkof

正文

此问题是google默认的设计,如果要求内容分多行完整的显示,请参考下面的方法:

1.\frameworks\base\packages\SystemUI\res\layout\status_bar_notification_row.xml文件

(1)文件开头android:layout_height="@dimen/notification_height"修改为android:layout_height=“wrap_content”

(2)content部分com.android.systemui.statusbar.LatestItemView android:id="@+id/content,修改android:layout_height="64dp"为android:layout_height="wrap_content“

2. frameworks\base\core\res\res\layout\status_bar_latest_event_content_large_icon.xml文件

LinearLayout中id为text的TextView控件中去掉android:singleLine="true" 及 android:ellipsize="end"

3. 如果还是显示不全,就需要调整每个notification暂用的layout宽度,这部分需要调整@dimen/notification_height中notification_height的大小,dimen定义在res/value/dimen.xml文件中,由于手机的分辨率等不同,会使用到不同的dimen.xml,因此修改时请确认改到到正确的dimen.xml文件,如果不确定,可以在代码中搜索notification_height,将全部定义都修改,至于修改多大,需要由notification内容来决定。

      原因:在Attrs.xml (frameworks\base\packages\systemui\res\values定义 NotificationRowLayout,在Status_bar_expanded.xml (frameworks\base\packages\systemui\res\layout)中会有systemui:rowHeight="@dimen/notification_height的定义,设置每一行的高度。