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