视图如何检测它何时附加到其父级?

use*_*016 13 android android-layout android-view

我有一个View,需要检测它何时被附加到其父视图.

ViewGroup我有这个OnHierarchyChangeListener让我知道什么时候添加/删除子视图,但我需要相反的事情.

Tal*_*lha 16

您可以在其onAttachedToWindow中创建自定义视图并执行您的操作

public class CustomView extends View {

   public CustomView(Context context) {
       super(context);
   }

   @Override
   protected void onAttachedToWindow() {
       super.onAttachedToWindow();
       Log.d("CustomView", "onAttachedToWindow called for " + getId());
       Toast.makeText(getContext(), "added", 1000).show();
   }
}
Run Code Online (Sandbox Code Playgroud)

[编辑1]

您可以确保将自定义视图添加到正确的视图组中

@Override
 protected void onAttachedToWindow() {
    // TODO Auto-generated method stub
    super.onAttachedToWindow();

    if(((View)getParent()).getId()== R.id.relativelayout2)
    {           
        Log.d("CustomView","onAttachedToWindow called for " + getId());
        Toast.makeText(context, "added", 1000).show();          
    }

}
Run Code Online (Sandbox Code Playgroud)