Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(Android) Tab 컨트롤 하단에 붙이기

안드로이드 개발

안드로이드(Android) Tab 컨트롤 하단에 붙이기

 

개발환경 : JDK 1.5, eclipse-galileo, window XP, android Google API 2.1

 

이것은 편법인데 TabHost 안에 TabWidget 컨트롤의 위치를 아래로 내려버리는

것이다. 밑에 붙어있을수 있도록 할려면 TabWidget 옵션중 paddingTop 값을

화면 크기만큼 줘서 아래로 내린다.

그리고 탭당 들어가는 각각의 화면들은 FrameLayout 에다가 LinearLayout

화면들을 하나씩 추가해 배치시킨다.

하지만 탭아래 라인이 있어 그렇게 깔끔하게 보이지 않으며 화면 크기가

바뀔 때 마다 그 크기를 알아와서 paddingTop 값을 조정해야 되는

불편함이 있을 것 같다.

 

Xml 의 내용은 다음과 같다.





	

		

		 
			
				
			
			
				
			
			
			
		
	


전체 소스 부분이다
import android.app.Activity;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

import com.sample.R;

public class TabBottom extends Activity{

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.tab_bottom);

		TabHost tab_host = (TabHost) findViewById(R.id.edit_item_tab_host);
			tab_host.setup(); 

		TabSpec ts1 = tab_host.newTabSpec("TAB_DATE");
		ts1.setIndicator("tab1");
		ts1.setContent(R.id.edit_item_date_tab);
		tab_host.addTab(ts1);

		TabSpec ts2 = tab_host.newTabSpec("TAB_GEO");
		ts2.setIndicator("tab2");
		ts2.setContent(R.id.edit_item_geocontext_tab);
		tab_host.addTab(ts2);

		TabSpec ts3 = tab_host.newTabSpec("TAB_TEXT");
		ts3.setIndicator("tab3");
		ts3.setContent(R.id.edit_item_text_tab);
		tab_host.addTab(ts3);

		tab_host.setCurrentTab(0);

	}
}

실행화면은 다음과 같다.
Posted by 녹두장군

댓글을 달아 주세요

  1. 궁금이 2010.10.20 12:48  댓글주소  수정/삭제  댓글쓰기

    그냥 아래로 정렬을 해서 내리면 안되나요?
    android:layout_alignParentBottom="true" 이런 코드로 가능하긴 한데,
    위에 줄이 생기네요. 이거 해결법을 찾고 있는 중입니다.

  2. 잠이오나 2010.12.23 14:49  댓글주소  수정/삭제  댓글쓰기

    http://stbaeya.com/tc/220
    여기 보시면 가중치(weight)를 줘서 밑으로 보내는 간단한 방법이 있네요.^^

    • 녹두장군 2010.12.24 11:00  댓글주소  수정/삭제

      정보 감사합니다.
      저도 요즘은 가중치로 넓이나 높이, 폰트 값을
      주고 있어요. 워낙 해상도들이 다 틀려서
      맞추기도 힘들더라구요 ..