2016. 9. 18. 21:19

레이아웃 인플레이션


인플레이션: XML레이아웃에 정의된 내용이 메모리에 객체화되는 과정


public lass MainActivity extends Activity{

@Override

publc void onCreate(savedInstanceState);

super.onCreate(savedInstanceState);  //내부적으로 인플레이션을 한다. 메모리상에 객체화 하는 과정


Button button1 = (Button) findViewById(R.id.button1); //인플레이션이 되어 메모리 상에 올라간다.

button.setText("시작됨");


setContentView(R.layout.activity_main);

}

}


---------------------------------------------------------------------------------------------------


public void setContentView(int layoutResID)

public void setContentView(View view[ViewGroup.LayoutParams params])


setContentView() 메소드의 역할

-화면에 나타낼 뷰를 지정하는 역할

-XML레이아웃의 내용을 메모리 상에 객체화 하는 역할



getSytemService(Context.LAYOUT_INFLATER_SERVICE)


*전체 화면 중에서 일부분만을 차지하는 화면 구성요소들을 XML레이아웃에서 로딩하여 보여주는 방법은

LayoutInflater 라는 클래스를 제공하며, 이 클래스는 시스템 서비스로 제공됨

단말이 시작되면 뒤에서 계속 동작하는 것들을 말한다. 


---------------------------------------------------------------------------------------------------



-안드로이드에서 화면: 소스와 화면 구성이 분리되어 있다.

자바소스 1개, XML레이아웃 1개


-화면 전체: 액티비티 -> setContentView 에서 인플레이션

액티비티를 위한 자바소스 1개 :MainActivity.java

액티비티를 위한 XML레이아웃 1개: activitiy_main.xml


-부분 화면 -> 수동으로 인플레이션

부분화면을 위한 자바소스 1개 또는 뷰(뷰가 1개의 소스 파일로 분리될 수 있음)

부분화면을 위한 XML레이아웃 1개: singer.xml


Posted by 프동프동