안녕하세요?

비오는 날씨에 개발하시느라 수고들이 많으십니다...

 

질문을 하기 전에 구현방법을 설명드리면...

Tab으로 메뉴바를 구성하고 텝을 클릭할때 다른 Activity로 이동하도록 구현하였습니다.

TabWidget의 셋팅은

 

 

private void setIntentWithSpac(String function, String tabID, int image, String text) {
  setIntent(function);
  spec = tabhost.newTabSpec(tabID)
    .setIndicator(new MyTabView(this, image, text))
    .setContent(intent);
  tabhost.addTab(spec);
 }

 

여기서 setItent(String function)은 기능에 따라 activity이동이 가능하겠금...

 

 

private void setIntent(String function) {

if (function.equals("Profile")) {
   intent = new Intent().setClass(this, Profile.class);
  } else if (function.equals("Note")) {
   intent = new Intent().setClass(this, Note.class);
  }

}

 

 

이런식으로 인자를 전달하여 구성하였습니다. 여기서 MyTabView는 LinearLayout을 상속받은 클래스로

동적으로 ImageView와 TextView를 vertical로 구성하였습니다.

추가적으로

 

 

private void setTabHeight(int height) {
  for (int i = 0; i < tabhost.getTabWidget().getChildCount(); i++) {
   tabhost.getTabWidget().getChildAt(i).getLayoutParams().height = height;
  }
 }

 

 

이런식으로 높이값을 적용해주었습니다.

 

실행을 하면 잘 실행이 됩니다....

 

여기서 맨 마지막텝에는 엑티비티가 아닌

 

 

inflater = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   inflater.inflate(R.layout.tablist, tabhost.getTabContentView(), true);

   spec = tabhost
     .newTabSpec("More")
     .setIndicator(
       new MyTabView(this, getIcon("tab", "More"), "More")).setContent(R.id.menu_list);
   tabhost.addTab(spec);

 

여기서 getIcon(String type, String function)은 ImageView Icon을 가져오는 커스텀 메소드입니다.

이런식으로 xml을 inflate하여 ListView를 붙였는데...

ListView의 divider가 높낮이가 다르게 나와서 검색을 해보니...AndroidManifest.xml에서

<uses-sdk android:minSdkVersion="7" />이런식으로 설정을 하면 가능하다고 해서 했더니 잘되었습니다.

 

다시 실행하자 TabWidget의 TextView만 사라진채 잘 구동이 됩니다.

<uses-sdk android:minSdkVersion="7" />을 삭제하자 리스트는 다시 divider가 높낮이가 틀리게 나오고

Tab은 잘 구동됩니다...

 

왜 이런 현상이 나타나는지 궁금합니다...