Настройка вкладок на состояние в Android

голоса
17

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

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

Довольно много, сказал использовать селектор, определенный в XML, конечно, сделал это. Но нет идентификатора, связанного ж / это так, я не знаю, как получить функцию селектора в растяжимом, так что я могу использовать его в качестве значка для вкладок. Может быть, я буду об этом не в ту сторону. Но это то, что у меня есть, и, очевидно, что-то отсутствует.

<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]: Обновление Android Tab иконок [2]: http://groups.google.com/group/android-evelopers/browse_thread/thread/ef3bdebcb715b385

Задан 21/04/2009 в 18:30
источник пользователем
На других языках...                            


2 ответов

голоса
20

XML вы включили здесь является способ определения растяжимой , который позволяет встроить случай заявление. Она представляет собой иную вытяжку в зависимости от состояния зрения этого времени назначено. Как растяжимый, вы должны сохранить его в виде файла XML в пределах res/drawableпапки вашего проекта (например tabselector.xml).

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

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

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

Ответил 22/04/2009 d 23:50
источник пользователем

голоса
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));

Первая вкладка будет использовать View в качестве его индикатора , а второй в CharSequence. Посмотрите на фактический класс TabSpec ( http://developer.android.com/reference/android/widget/TabHost.TabSpec.html ).

Ответил 20/01/2010 d 13:44
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more