Android의 상태에서 탭 사용자 지정
문제
각 탭에 아이콘을 넣는 방법을 알고 있습니다. 문제가되지 않습니다. 나는 또한 이것을 가로 질러 달렸다 : [거의 같은 것의 스택 오버플로 스레드] [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).