마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

탭 바깥으로 여백이 생기는데 없애는 방법이 있나요?

0 추천
// main.xml
 
<?xml version="1.0" encoding="utf-8"?>
<TabHost
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
     <LinearLayout
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:padding="5dp">
             <FrameLayout
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:id="@android:id/tabcontent"
             android:layout_weight="1"
             android:padding="5dp"/>
       <TabWidget
                 android:id="@android:id/tabs"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:tabStripEnabled="false">                
             </TabWidget>
      </LinearLayout>
    </TabHost>

위와 같은 식으로 탭 1~4까지 탭 호스트로 구성하였고 탭 안에 탭도 따로 레이아웃을 만들어서 자바 파일로 인텐트 시켜서 탭을 추가했습니다. 

// MainActivity.java   
 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;
        setContentView(R.layout.main);
         
        TabHost mTab = getTabHost();
        TabHost.TabSpec spec;
        Intent intent;
     
    intent = new Intent(this, Tab1.class);
    spec = mTab.newTabSpec("Tab1").setIndicator("배차")
            .setContent(intent);
    mTab.addTab(spec);
     
    intent = new Intent(this, Tab2.class);
    spec = mTab.newTabSpec("Tab2").setIndicator("관제")
            .setContent(intent);
    mTab.addTab(spec);
     
    intent = new Intent(this, Tab3.class);
    spec = mTab.newTabSpec("Tab3").setIndicator("DTG")
            .setContent(intent);
    mTab.addTab(spec);
     
    intent = new Intent(this, Tab4.class);
    spec = mTab.newTabSpec("Tab4").setIndicator("기타")
            .setContent(intent);
    mTab.addTab(spec);
     
    for (int tab = 0; tab < mTab.getTabWidget().getChildCount(); ++tab) {
        mTab.getTabWidget().getChildAt(tab).getLayoutParams().height = 120;
        RelativeLayout relLayout = (RelativeLayout)mTab.getTabWidget().getChildAt(tab);
        TextView tv = (TextView)relLayout.getChildAt(1);
        tv.setTextSize(20);
    }
    checkVersionUpdate();
    alertGpsService();
  }

기존에 적용되있던 테마는 위 탭 아래에 그림자가 생겨서 ㅠㅠ

android:theme="@android:style/Theme.NoTitleBar"  테마로 설정해놓았습니다.

아래 화면은 여백을 보이게 하려고 Theme.Light.NoTitleBar 테마로 설정한 화면입니다.

근데 이 테마로 하니까

또 배경화면 색이나 리스트 뷰에 구분선 변경이 안되네요.

탭이 화면에 꽉 차게? 할 수있는 방법 없을까요... 구글링해도 나오지 않아 질문합니다. 

BMS (520 포인트) 님이 2014년 6월 13일 질문

1개의 답변

+1 추천
 
채택된 답변
android:padding="5dp" 를 지우세요
aucd29 (218,390 포인트) 님이 2014년 6월 13일 답변
BMS님이 2014년 6월 27일 채택됨
padding을 모르시다니... ㄷㄷ;;
헐... 초반에 padding 설정해 놓고 딴데서 찾고있었네요 ㅠㅠㅠㅠ 으아 이런실수를 흑흑 감사합니다. 꼼꼼히 살펴봐야겠어요 다음부터는 ㅠㅠ
...