문제

각 탭에 아이콘을 넣는 방법을 알고 있습니다. 문제가되지 않습니다. 나는 또한 이것을 가로 질러 달렸다 : [거의 같은 것의 스택 오버플로 스레드] [1

나는 그 질문의 링크 중 하나를 따랐고 [this] [2]를 발견했습니다.

거의 XML에 정의 된 선택기를 사용한다고 말했습니다. 그러나 IT와 관련된 ID는 없으므로 선택기 기능을 드로잉 가능하게하는 방법을 잘 모르겠으므로 탭의 아이콘으로 사용할 수 있습니다. 어쩌면 나는 이것에 대해 잘못된 길을 가고 있을지도 모른다. 그러나 이것은 내가 가진 것과 분명히 무언가를 놓친 것입니다.

<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))); 

지금 Drawable은 Drawable Image Resource에 대한 참조 일뿐입니다. 선택기를 그리기 가능하게하려면 어떻게해야합니까?

이것은 내 질문입니다 [1] : 안드로이드 탭 아이콘 업데이트 [2]: http://groups.google.com/group/android-evelopers/browse_thread/thread/ef3bdebcb715b385

도움이 되었습니까?

해결책

여기에 포함 된 XML은 사례 문을 포함시킬 수있는 그림을 정의하는 방법입니다. 지정된 뷰의 상태에 따라 다른 그림을 나타냅니다. 드로잉 가능하면 내에서 XML 파일로 저장해야합니다. res/drawable 프로젝트 폴더 (예를 들어 tabselector.xml).

Tabhost에 사용하려면 평소와 같이 tabactivity를 구성해야합니다 (이것에 표시된대로 튜토리얼 예).

그런 다음 각 탭을 호스트에 추가하면 tabselector 아래의 "탭 1"에 표시된대로 표시기로 그려 질 수 있습니다.

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));

참고 : 당신 할 수 없습니다 이 시점에서 아이콘 뒤에 탭 배경의 색상을 변경하십시오.

다른 팁

보기를 표시기로 사용할 수 있습니다.이 방법으로 원하는 방식으로 사용자 정의 할 수 있습니다.

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));

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top