【问题标题】:How to change view of a widget in android?如何在android中更改小部件的视图?
【发布时间】:2015-03-06 17:54:46
【问题描述】:

假设,我有一个显示我网站内容的小部件。

我的小部件左下角有一个刷新图标 png。

现在,我希望刷新图标自行旋转,直到我从服务器获取内容。

我该怎么办?

【问题讨论】:

标签: android android-widget android-appwidget


【解决方案1】:

使用 AsynkTask,在 onPreExecute() 方法中启动 Rotation 动画,在 onPostExecute() 方法中停止动画

【讨论】:

  • 我知道,但在小部件中我无法访问图像视图。我应该使用 remoteViews。
【解决方案2】:

您无法直接修改视图,因为小部件中的视图位于您的进程之外(在您的地址和内存空间之外)。
小部件视图放置在某个系统进程中,系统直接对android.view.Viewandroid.view.ViewGroup 进行所有调用。
Android 允许外部进程使用RemoteViews 类访问这些“嵌入式”视图。

RemoteViews 类代表系统为了修改内部视图而应该执行的一组操作。例如,RemoteViews.setViewVisibility() 等效于 View.setVisibility()

现在,一旦您牢记上述内容,您就会发现无法覆盖视图层次结构中的视图类(因为没有足够简单的方法将该类覆盖转移到系统进程并让系统改为使用该实现“股票”之一)。

作为您的问题的解决方案,您在视图层次结构中有两个视图。 一个是旋转按钮,另一个是对触摸做出反应的按钮。 当用户触摸按钮视图时,您将隐藏它并显示旋转视图。根据服务器的响应,您将隐藏第一个视图并再次显示按钮视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2019-05-17
    • 2018-04-28
    • 1970-01-01
    相关资源
    最近更新 更多