当我按下一个按钮时,我希望出现一个 inflatedView ,当我按下同一个按钮时,这个 View 消失...
ViewGroup parent = (ViewGroup) findViewById(R.id.inflate_place);
View view = LayoutInflater.from(getBaseContext()).inflate(R.layout.inflate_find, null);
for(int i=0; i<parent.getChildCount(); ++i) {
View nextChild = parent.getChildAt(i);
// Here i want that if is the same layout, this disappear
if (nextChild.equals(view)) {
parent.removeView(nextChild);
return;
}
}
parent.addView(view);
最佳答案
一遍又一遍地重新膨胀相同的 View 通常不是最好的方法。
只需向您的 Activity 添加一个指向您要隐藏的 View 的变量:
View myView;
在 onCreate 中,膨胀你的 View :
myView = LayoutInflater.from(getBaseContext()).inflate(R.layout.inflate_find, null);
现在,如果你想显示 View ,你可以像在现有代码中一样添加它:
ViewGroup parent = (ViewGroup) findViewById(R.id.inflate_place);
parent.add(myView);
可以这样删除:
If (myView.getParent()!=null){
((ViewGroup) myView.getParent()).removeView(myView);
}
切换 View 的可见性会像这样工作:
If (myView.getParent()!=null){
((ViewGroup) myView.getParent()).removeView(myView);
} else {
ViewGroup parent = (ViewGroup) findViewById(R.id.inflate_place);
parent.add(myView);
}
您可能想看看 View.setVisibility()。这通常用于显示和隐藏 View :http://developer.android.com/reference/android/view/View.html#setVisibility%28int%29
关于android - 我怎么知道是否存在 inflatedView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887450/