티스토리 뷰

Language/Android

[Android] 탭 구현하기

Mr.SIM 2013. 4. 23. 23:56

Tab구현하기


1. 기본탭 구현하기

java

public class MainActivity extends TabActivity {
 TabWidget widget;
	TabHost host;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		host = getTabHost();
		widget = host.getTabWidget();
		
		TabHost.TabSpec spec;
		spec = host.newTabSpec("Main");
		spec.setContent(new Intent(this, First.class));
		spec.setIndicator("Main", getIcon(android.R.drawable.btn_star));
		host.addTab(spec);
		spec = host.newTabSpec("Second");
		spec.setContent(new Intent(this, Second.class));
		spec.setIndicator("Second", getIcon(android.R.drawable.btn_star));
		host.addTab(spec);
		spec = host.newTabSpec("Third");
		spec.setContent(new Intent(this, Third.class));
		spec.setIndicator("Third", getIcon(android.R.drawable.btn_star));
		host.addTab(spec);
	}

	private Drawable getIcon(int id) {
		return getResources().getDrawable(id);
	} 
}



xml




    

        

        
        
    





기본탭이 아닌 탭안에 여러 위젯을 배치하고 싶다면 어떻게 할까?

원하는 view를 만든 후 TabSpec의 setIndicator의 인자로 view를 넘겨주면 된다.


view를 만들 기위해서는 우선 탭하나의 배치를 기록할 xml을 만든 후 글을 기록해야한다.

LayoutInflater 를 이용해서 탭 항목(하나)을 디자인한 xml을 받아온 뒤, 내용을 기록한 뒤 setIndicator인자로 넘기면 된다.


예)

View view = LayoutInflater.from(this).inflate(R.layout.tab_style, null);

ImageView image = (ImageView) view.findViewById(R.id.img);
image.setBackgroundDrawable(getResources().getDrawable(img_id));



커스텀 탭 구현 결과 : 








'Language > Android' 카테고리의 다른 글

[Android] 전화걸기  (0) 2013.04.24
[Android] selector사용하기  (0) 2013.04.24
[Android] 액티비티 생애주기  (0) 2013.04.19
[Android] Thread  (0) 2013.04.17
[Android] 인터넷상태확인  (0) 2013.04.16
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday