将视图的可见性设置为已展开布局的视图



我试图在布局膨胀后将一些视图的可见性设置为消失,但它不起作用。如果我尝试访问视图的标签,我可以清楚地看到我正在访问正确的视图。这段代码没有导致任何错误,所以我试图理解为什么它不起作用。

我将视图(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);
}
}
}

originalView未附加到布局中。

  1. 提供要展开此布局的父视图
  2. 或者在充气后添加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)

最新更新