2016-11-14 22 views

答えて

0

removeAllViewsInLayout()removeAllViews()の間に重要な違いがあります。

前者はすべてのビューを削除しないことがあり、後者はすべてのビューを削除します。 removeAllViewsInLayout()で削除されたビューを特定するための独自のロジックを実行していない限り、レイアウトに重複したビューを追加しようとしている可能性があります。 removeAllViewsInLayout()は、この警告が付属しています実際のところ

、:

はあなたのViewGroupを拡張されていない限り、このメソッドを呼び出すと、ビューの測定とレイアウトパイプラインを理解しないでください。

あなたの投稿に基づいて、私はあなたがViewGroupを拡張しておらず、測定/レイアウトパイプラインを適切に分析していないと仮定しているので、そのメソッドを呼び出すべきではありません。

ただし、mContainerが実際のnViewsの親でない場合は、mContainerをクリアするだけでは不十分です。その場合は、nViewsremoveView()メソッドを使用して削除する必要があります。mContainerに追加するには、それを実際の親としてください。

+0

removeAllViews()=>同じエラーです。 mContainerは私のlayout.xmlのルートLiniarLayoutです – Corneliu

+0

'nViews 'はどこから来ますか? 'nViews'が2回追加される理由を分析するのに十分な情報を投稿していませんが、エラーメッセージは非常に明確です。 –