Мне интересно, может ли кто-нибудь объяснить мне, почему при раздувании макета, если в 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));
Просто пытается получить лучшее понимание того, как все это работает.
ТИА
Я вроде как понимаю, что вы говорите, но не совсем. Итак, когда вы когда-нибудь проходите фактическую группу просмотра на надув? И в чем смысл? – TrustNoOne
@TrustNoOne Точка очевидна. Чтобы получить представление, которое вы надуваете, подключено к ViewGroup. Если вы не передадите корневой режим, вашему представлению не будет ничего. – Simas
Извините, думаю, я просто плотный. Вы в одном месте говорите, что передача vg не получает добавленную точку зрения, а затем в комментарии вы говорите, что это так. – TrustNoOne