2009-04-21 2 views
17

각 탭에 아이콘을 어떻게 두는지는 아무런 문제가 없습니다. 나는이 가로 질러 : [1] 안드로이드 : 상태에 탭 사용자 정의 : 선택기 drawable을 만드는 방법

나는 그 질문에서 링크 중 하나를 따르고 [이] [2]

꽤 많은, 그것은 말했다 발견 [스택 오버플로는 거의 같은 일을 스레드] XML에 정의 된 셀렉터를 사용하려면, 그렇게하십시오. 하지만 거기에 ID와 관련된 아니에요 그래서 나는 탭에 대한 아이콘으로 사용할 수 있도록 drawable로 선택기 기능을 얻는 방법을 잘 모르겠습니다. 어쩌면 나는 잘못된 방향으로 갈 것입니다. 그러나 이것은 내가 가지고 있고 명백하게 뭔가를 놓친 것입니다. 내 코드에서

<selector 
    android:id="@+id/myselector" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Non focused states --> 
    <item 
     android:state_focused="false" 
     android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/darklogo" /> 
    <item 
     android:state_focused="false" 
     android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@drawable/lightlogo" /> 

    <!-- Focused states --> 
    <item 
     android:state_focused="true" 
     android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/lightlogo" /> 
    <item 
     android:state_focused="true" 
     android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@drawable/lightlogo" /> 

    <!-- Pressed --> 
    <item 
     android:state_pressed="true" 
     android:drawable="@drawable/lightlogo" /> 
</selector> 

는, 예를 들어 탭을 사용하여 생성됩니다

host.addTab(host.newTabSpec("three") 
       .setIndicator("map",drawables) 
       .setContent(new Intent(this, Map.class))); 

가 지금 그릴 수

는 드로어 블 이미지 리소스 단지 참조입니다. 선택기를 드로어 블로 만들려면 어떻게해야합니까?

내 질문 [1] : Updating Android Tab Icons [2] : http://groups.google.com/group/android-evelopers/browse_thread/thread/ef3bdebcb715b385

답변

20

여기에 포함하신 XML 당신이 경우 문을 삽입 할 수 있습니다 드로어 블을 정의하는 방법이다. 그것은 할당 된 뷰의 상태에 따라 다른 드로어 블을 제공합니다. 드로어 블로 프로젝트의 res/drawable 폴더에 xml 파일로 저장해야합니다 (예 : tabselector.xml).

Tabhost로 사용하려면 평소와 같이 TabActivity를 구성해야합니다 (이 경우 tutorial example과 같이).

각 탭을 호스트에 추가 할 때 아래의 "탭 1"에서와 같이 표시기로 tabselector 드로어 블을 지정합니다.

Drawable mySelector = getResources().getDrawable(R.drawable.tabselector); 

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1", mySelector).setContent(R.id.textview1)); 
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2)); 

참고 : 수 없습니다 변경이 시점에서 아이콘 뒤에 탭 배경의 색상.

+0

평상시와 마찬가지입니다. 고맙습니다. 내 드로어 블 폴더가 더 큰 문제였던 것 같아요. 나를 움직일 수있는 코드를 포함 해 주어서 고맙습니다. 고맙습니다. – Chrispix

+0

이 지금 가능합니까? 나는 당신의 노트 진술을 의미합니다. 내 질문을 확인하시기 바랍니다 : http://stackoverflow.com/questions/2810075/customizing-tab-indicator-images-in-android – Praveen

1

원하는대로보기를 사용자 정의 할 수있는 지표로 표시를 사용할 수 있습니다.

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator(View MyView).setContent(R.id.textview1)); 
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2)); 

첫 번째 탭은보기를 표시기로 사용하고 두 번째 탭은 CharSequence를 사용합니다. 실제 TabSpec 클래스 (http://developer.android.com/reference/android/widget/TabHost.TabSpec.html)를 살펴보십시오.

+0

이것은 안드로이드 1.6 버전에서 작동합니다. 잊지 마라. –

관련 문제