1
我想知道如果有人可以向我解释为什么,当膨胀布局时,如果ViewGroup被指定,以后removeView()什么也不做。那就是:布局Inflater,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
我有点看到你在说什么,但不是真的。那么你什么时候将实际的视图组传递给inflater?那又有什么意义呢? – TrustNoOne 2014-09-03 17:27:09
@TrustNoOne这一点很明显。要获得视图,请将视角添加到ViewGroup中。如果您没有传递根视图,那么您的视图将没有任何附加内容。 – Simas 2014-09-03 17:33:56
对不起,你猜我刚刚密集。你在一个地方说传递vg不会添加视图,然后在评论中你说的是。 – TrustNoOne 2014-09-05 17:44:13