我想知道是否有人可以向我解释为什么在膨胀布局时,如果指定了 ViewGroup 之后的 removeView() 什么都不做。那是:
在 onCreate 中:
currentView = this.findViewById(android.R.id.content).getRootView();
vg = (ViewGroup) currentView;
在后面的方法中:
getHelp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inflater = GraphicsActivity.this.getLayoutInflater();
final View faqView = inflater.inflate(R.layout.graphfaq, vg);
final View faqClose = findViewById(R.id.graph_faq_close);
faqClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v2) {
if (MainActivity.debug) Log.i(TAG,"inside faqClose listener");
vg.removeView(faqView);
}
});
}
});
这会正确膨胀并显示 faqVIew,但是当第二个 clickListener 被触发时,视图不会被删除。
但是,这样做确实会在单击关闭时删除视图:
final View faqView = inflater.inflate(R.layout.graphfaq, null);
vg.addView((faqView));
只是想更好地了解这一切是如何运作的。
TIA