getParent()

Posted by ITPangPang
2017. 2. 13. 22:43 메모하기/Method


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 자체를 많이 써서 그런가..)