为膨胀的布局设置视图的可见性消失
Posted
技术标签:
【中文标题】为膨胀的布局设置视图的可见性消失【英文标题】:Set visibility for view to gone for an inflated layout 【发布时间】:2020-12-05 18:17:00 【问题描述】:我正在尝试将某些视图的可见性设置为布局膨胀后消失,但它不起作用。如果我尝试访问视图的标签,我可以清楚地看到我正在访问正确的视图。此代码不会导致任何错误,因此我试图了解它为什么不起作用。
我将视图 (hideView) 和布局 (layout) 的资源 ID 作为参数传入:
public void hideViews(String title, ArrayList<Integer> hideView, int layout)
final LayoutInflater factory = getLayoutInflater();
final View originalView = factory.inflate(layout, null);
for (int i = 0; i < hideView.size(); i++)
View view = originalView.findViewById(hideView.get(i));
if (title.equals("Admin") || title.equals("Manager"))
view.setVisibility(View.VISIBLE);
else
view.setVisibility(View.GONE);
【问题讨论】:
请分享您的观点.xml
。
【参考方案1】:
originalView
未附加到您的布局中。
-
提供您要在其中扩展此布局的父视图
或者在膨胀后添加
originalView
作为其他附加视图的子视图。
假设这是你的父视图
ViewGroup parentView = (ViewGroup)findViewById(R.id.parentView);
解决方案 1
替换这个:
final View originalView = factory.inflate(layout, null);
与:
final View originalView = factory.inflate(layout, parentView);
解决方案 2
添加这个:
parentView.add(originalView)
【讨论】:
以上是关于为膨胀的布局设置视图的可见性消失的主要内容,如果未能解决你的问题,请参考以下文章