【问题标题】:Android AppWidget ListView won't populateAndroid AppWidget ListView 不会填充
【发布时间】:2019-02-24 04:30:18
【问题描述】:

我很难弄清楚为什么我的 App Widget ListView 不会填充数据。一切似乎都连接正确。当我调试时,我可以看到从我的数据库(Firestore)中检索到的数据。但是,它仍然不会填充到 App Widget 中。

我在自己的 Github 上新建了一个 Issue,方便查看问题:Github Issue

RemoteViewsFactory

  • Firestore DB成功检索数据
  • List<Review> reviews 已填充
  • 其中的Review 对象包含正确的数据
  • get() 方法返回正确的数据

ReviewsAppWidgetProvider

  • ReviewsWidgetService Intent 已创建
  • 使用Intent 调用setRemoteAdapter() 并同时传入ListView
  • updateAppWidget() 被调用
  • notifyAppWIdgetViewDataChaged() 被调用

ReviewFragment

  • 在添加或删除评论时调用ReviewsAppWidgetProvider.updateAppWidgets()

AndroidManifest

  • ReviewsAppWidgetProvider 宣布为接收者
  • action.APPWIDGET_UPDATE 设置了意图过滤器
  • ReviewsWidgetService 声明为服务
  • 权限BIND_REMOTEVIEWS设置

【问题讨论】:

  • 欢迎来到 StackOverFlow。 WOW 第一个问题,你真的有gone to town 这个(会员1 年3 个月)如果只有新用户会这样做。干得好!。

标签: java android android-appwidget appwidgetprovider android-appwidget-list


【解决方案1】:

正如您所说,获取数据一切正常。但它仍然在绘制加载视图。所以问题出在你的divider 上。应用小部件中不能使用视图,因为launcher进程不知道视图,它只知道有限的视图数量,所有可以使用的视图,你可以找到here

那么如何制作这样的分隔线呢? 首先你需要一个形状,所以它会像 bottom_border.xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke
        android:width="0.5dp"
        android:color="#CCCCCC" />
</shape>

所以现在在你的 root view 添加背景 bottom_border.xml 喜欢:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@drawable/bottom_border"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
        ...

【讨论】:

    猜你喜欢
    • 2015-06-28
    • 2020-07-17
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多