gstory0404 / flutter_unionad

字节跳动 穿山甲广告SDK Bytedance-UnionAD flutter版本插件

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

直接使用demo 内信息流广告 放在ListView.builder内滑动列表非常卡顿

Cedar1012 opened this issue · comments

commented

ListView.builder(
itemCount: 40,
itemBuilder: (c, i) => item(),
)

void item() => FlutterUnionad.nativeAdView(
//android 信息流广告id 必填
androidCodeId: "945417699",
//ios banner广告id 必填
iosCodeId: "945417699",
//是否支持 DeepLink 选填
supportDeepLink: true,
// 期望view 宽度 dp 必填
expressViewWidth: 375.5,
//期望view高度 dp 必填
expressViewHeight: 0,
//一次请求广告数量 大于1小于3 必填
expressNum: 2,
mIsExpress: true,
//控制下载APP前是否弹出二次确认弹窗
downloadType: FlutterUnionadDownLoadType.DOWNLOAD_TYPE_POPUP,
//是否启用点击 仅ios生效 默认启用
isUserInteractionEnabled: true,
//用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,
adLoadType: FlutterUnionadLoadType.LOAD,
callBack: FlutterUnionadNativeCallBack(
onShow: () {
print("信息流广告显示");
},
onFail: (error) {
print("信息流广告失败 $error");
},
onDislike: (message) {
print("信息流广告不感兴趣 $message");
},
onClick: () {
print("信息流广告点击");
},
),
), //个性化模板信息

类似这样。滑动列表是。广告一直抖动

在flutter中插入原生view本身就比较耗性能,推荐不要在大列表中插入大量广告

commented

在flutter中插入原生view本身就比较耗性能,推荐不要在大列表中插入大量广告

也没有很多。列表一页20条。一页中有两条信息流广告 页很卡, 而且IOS 是按下触发广告 如何才能改成onTap 这种形式

@Cedar1012 抖动的话 可以尝试设置expressViewHeight为广告实际高度接近的数值(示例demo设置的是0),因为这里在广告加载完成后会根据SDK实际广告实际尺寸来重新渲染flutter widget的宽高,解决flutter中设置的宽高与SDK实际渲染出广告宽高不一致导致留白问题

//显示广告
      case FlutterUnionadMethod.onShow:
        Map map = call.arguments;
        if (mounted) {
          setState(() {
            _isShowAd = true;
            _width = (map["width"]).toDouble();
            _height = (map["height"]).toDouble();
          });
        }
        widget.callBack?.onShow!();
        break;
commented

@Cedar1012 抖动的话 可以尝试设置expressViewHeight为广告实际高度接近的数值(示例demo设置的是0),因为这里在广告加载完成后会根据SDK实际广告实际尺寸来重新渲染flutter widget的宽高,解决flutter中设置的宽高与SDK实际渲染出广告宽高不一致导致留白问题

//显示广告
      case FlutterUnionadMethod.onShow:
        Map map = call.arguments;
        if (mounted) {
          setState(() {
            _isShowAd = true;
            _width = (map["width"]).toDouble();
            _height = (map["height"]).toDouble();
          });
        }
        widget.callBack?.onShow!();
        break;

非常感谢 我去尝试一下