getParent()
getParent()
ㆍ ViewParent - getParent()
Reference
Returns the parent if it exists, or null.
: 부모값(ViewParent)이 존재하면 리턴한다,
존재하지 않으면 null을 뱉는다.
테스트
1. Activity의 부모값(ViewParent)를 찍어본다.
public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("ITPANGPANG",""+this.getParent());
}
}
결과 : Activity의 Parent는 존재하지 않으므로 null!
2. RelativeLayout 아래에 TextView를 하나 넣어본후
TextView의 부모값(ViewParent)를 찍어본다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="xyz.itpangpang.study.MainActivity">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView)findViewById(R.id.tv);
Log.d("ITPANGPANG","ViewParent : "+tv.getParent());
}
}
결과 : TextView를 감싸고 있는 부모인 Relativelayout
실제 사용한 경험
1. 동적으로 뷰를 추가하고 제거할때
ViewGroup parent = (ViewGroup) yourView.getParent();
parent.removeView(yourView);
parent.removeAllViews();
git을 뒤져보니
이런식으로 사용했던 코드가 있었다.
2. Canvas에서 View 추가.
http://itpangpang.tistory.com/301
프로젝트 성향에 따라 다르겠지만..
글쓴이는 굉장히 많이 쓰는 편..
(Canvas 자체를 많이 써서 그런가..)