2009-04-21 7 views
17

Я знаю, как разместить значок на каждой вкладке, это не проблема. Я также натыкался на это: [Stack Overflow нить на довольно много то же самое] [1]Android: настройка вкладок в состоянии: как сделать селектор drawable

Я последовал за одну из ссылок из этого вопроса и нашел [это] [2]

Довольно много, сказал Конечно, использовать селектор, определенный в XML, сделал это. Но нет никакого идентификатора, связанного с этим, поэтому я не уверен, как получить функцию селектора как 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, вы включили здесь является способ определения растяжимой, который позволяет встроить случай заявление. Он отображает различные возможности в зависимости от состояния представления, которому он назначен. Вы можете сохранить его как файл xml в папке res/drawable вашего проекта (например, tabselector.xml).

Чтобы использовать его для Tabhost, вам нужно построить TabActivity, как обычно (как показано на рисунке tutorial example).

Затем, когда вы добавляете каждую вкладку на хост, вы указываете tabselector в качестве индикатора, как показано на рисунке «TAB 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)); 

Примечание: Вы не можете изменить цвет вкладку фона позади значков на данный момент.

+0

Как обычно. Большое спасибо. Я думаю, что это не моя моя доступная папка, моя большая проблема. Спасибо за то, что вы включили какой-то код, чтобы заставить меня двигаться. Я ценю это. – Chrispix

+0

Это возможно сейчас? Я имею в виду ваш комментарий. проверьте мой вопрос: http://stackoverflow.com/questions/2810075/customizing-tab-indicator-images-in-android – Praveen

1

Вы можете использовать View как индикатор, таким образом вы можете настроить его так, как вы пожелаете.

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

Это работает с версией Android 1.6. Не забывайте об этом. –

 Смежные вопросы

  • Нет связанных вопросов^_^