美文网首页高级UI
RemoteViews在项目中遇到的问题

RemoteViews在项目中遇到的问题

作者: dlihasa | 来源:发表于2019-12-18 16:59 被阅读0次

问题

维护公司之前同事留下的老项目,遇到了自定义的Notification布局,高度在部分机型上显示不全

解决

在默认情况下低版本,NotificationCompat只有

Builder.setContent(remoteViews); //默认高度64 超出则显示不全

而在api16 以上提供了bigContenteview

Builder.setCustomBigContentView(remoteViews);// 默认高度256 超出则显示不全

其中RemoteViews的布局最外层是这样,当我设置layout_height为wrap_content时,通知栏不显示推送内容,只有logo和时间,转为设置为具体高度就可以了:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="75dp"
    android:paddingTop="6dp"
    android:paddingBottom="6dp"
    android:layout_width="match_parent"
    android:orientation="horizontal">
    
</LinearLayout>

因为我们的app版本最低支持大于16,我就直接设置了

Builder.setCustomBigContentView(remoteViews);

发现大部分机型都正常了,但是小米4c上显示不全,然后加上16之前的设置方法得以解决,最终如下:

/两行代码适配通知栏不显示内容/显示不全的问题
mBuilder.setContent(mRemoteView);
mBuilder.setCustomBigContentView(mRemoteView);

可以正常展示,但是自定义的通知栏距两侧的边距不同机型表现不一致。

关于RemoteViews的介绍,推荐一下:
RemoteViews的作用和原理
这篇风格我个人很喜欢,是什么,能做什么,怎么做,原理是什么。加之引用官方文档来介绍。

从使用角度在推荐一篇:
Android通知栏详解

相关文章

  • RemoteViews在项目中遇到的问题

    问题 维护公司之前同事留下的老项目,遇到了自定义的Notification布局,高度在部分机型上显示不全 解决 在...

  • vue2项目中遇到的问题汇总

    华为内置浏览器打不开vue2页面如何调试: 用iE浏览器的 edge版本,检查报错,一个错都不能有,全部清除报错 ...

  • 项目中遇到的问题

    mySql常用类型: int:整型 默认长度11 10位长度 double:浮点型,例如double(5,2)表...

  • 项目中遇到的问题

  • 项目中遇到的问题

    1.判断是安卓还是IOS 2.怎么渲染数据 3.子组件怎么获取子组件的属性 1.图二是在子组件上怎么接受父组件传来...

  • 项目中遇到的问题

    1. vue-cli 文件的作用 index.html 和App.vue都是指同一个页面,App.vue中是组价...

  • 项目中遇到的问题

    数据解析问题: 由于后台返回的数据是一串字符串,而不是JSON格式.所以需要我们自己处理.数据格式是这样的:key...

  • 项目中遇到的问题

    1.页面之间进行跳转后回到原始页面,页面布局整体下移64px/44px个高度? 查阅了一些资料后,说要设置这个属性...

  • 项目中遇到的问题

    dyld: Library not loaded: @rpath/Alamofire.framework/Alam...

  • 项目中遇到的问题

    1.iOS中,延时调用不会因为对象的销毁而失效,如果不作取消处理,可能会造成程序功能混乱。 2.在接收到新聊天消息...

网友评论

    本文标题:RemoteViews在项目中遇到的问题

    本文链接:https://www.haomeiwen.com/subject/btuunctx.html