【问题标题】:Android Widget forcing RemoteView to clear cache?Android Widget强制RemoteView清除缓存?
【发布时间】:2011-07-12 02:29:59
【问题描述】:

我正在开发一个小部件,其中纵向和横向布局分别保存在 /layout 和 /layout-land 中。每个布局文件的名称相同,但已根据其方向差异进行了格式更改。

当我在其中一个方向启动一个小部件并将其保持在那里时,它工作正常......但是当我切换方向时,整个布局变得混乱。

现在,在网上搜索后,我发现Android系统从缓存中加载了最新的RemoteView。 Aka,如果我在横向启动小部件,横向布局会被缓存并在更改方向时使用。

我已尽我所能阻止这种情况的发生,但无济于事。 有谁知道是否可以清除 Android RemoteView 缓存并强制它加载更正的布局??

谢谢

编辑:

我找到了一个解决方案,虽然有点老套...

我创建了一个“包装器”布局,其中只有一个带有 ID 的 LinearLayout,然后创建了子布局,其中横向版本的名称末尾有一个 _land。

在 onUpdate 方法和更新小部件的服务中,我检查屏幕的方向,然后以编程方式选择 _land 或非 _land 版本,并将其添加到包装器布局中。

我不敢相信 Google 没有让这件事变得更容易,而且我不得不强迫这种程序化行为脱离使用 XML 配置似乎很自然的事情,这让我非常沮丧。

【问题讨论】:

    标签: android android-widget


    【解决方案1】:

    您可能需要使用layout-landlayout-port 作为目录(而不是layoutlayout-land)才能使其正常工作。

    【讨论】:

    • 刚试过。不幸的是,没有变化:(它似乎仍然想从最初创建的方向加载布局
    猜你喜欢
    • 2017-05-19
    • 1970-01-01
    • 2011-05-02
    • 2016-02-18
    • 2014-12-23
    相关资源
    最近更新 更多