【问题标题】:Dynamically remove view from StackView Widget从 StackView Widget 中动态移除视图
【发布时间】:2014-02-04 07:27:28
【问题描述】:

尚未找到从 StackView 小部件中删除视图的成功方法。我正在处理 SDK 附带的基本 StackView 示例。

这是我在 getViewAt(int position) 函数中尝试对某个视图执行的操作,该视图在某种情况下我不想在小部件中显示:

rv.removeAllViews(R.id.widget_item);
mWidgetItems.remove(position);
mCount = mCount -1;
AppWidgetManager awm = AppWidgetManager.getInstance(mContext);   
awm.notifyAppWidgetViewDataChanged(awm.getAppWidgetIds(new ComponentName(mContext, WidgetProvider.class)), R.id.widget_item);

我也试过了

rv.setViewVisibility(R.id.widget_item, View.GONE); 

而不是

rv.removeAllViews(R.id.image_frame);

这两者都会导致视图为空白,但视图仍然存在。我可以判断,因为当我翻阅 StackView 时,我看到了一个空位置。

【问题讨论】:

    标签: android android-widget android-imageview stackview android-remoteview


    【解决方案1】:

    如果您想设置可见性,您必须编写如下代码:

    mView.sezVisibility(View.Gone);
    

    如果你想删除那么:

    rv.removeView(mButton); //For examble remove a button
    

    【讨论】:

    • 感谢您的反馈。此小部件使用 RemoteViews,而您提到的这两个功能不适用于 RemoteViews。
    • oww SRY,我认为 rv 是一个 laout 或类似的东西 sry :D
    【解决方案2】:

    StackView 使用适配器来知道要显示多少元素。如果要添加或删除元素需要修改Adapter,不要直接修改View。

    【讨论】:

    • 我不确定如何修改 remoteAdapter。此链接说明了如何为 TextView 设置文本:stackoverflow.com/questions/4528824/… 但是,我想从小部件中删除整个视图,而不仅仅是修改文本。
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2015-09-29
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2020-07-24
    相关资源
    最近更新 更多