Как изменить изображения вкладок в TabHost

В дополнение к ответу duncansmart также дополнительные методы могут использоваться на Платформе 2.0. Просто добавьте ExtensionAttribute класс под Системой. Время выполнения. Пространство имен CompilerServices и Вы можете использовать дополнительные методы (только с C# 3.0, конечно).

namespace System.Runtime.CompilerServices
{
    public class ExtensionAttribute : Attribute
    { 
    }
}
27
задан rogcg 31 July 2013 в 11:46
поделиться

4 ответа

этот код показывает, как установить значок в хосте вкладок, а также установить намерение

  TabHost tabHost = getTabHost();

        // Tab for Photos
        TabSpec photospec = tabHost.newTabSpec("Photos");
        // setting Title and Icon for the Tab
        photospec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_photos_tab));
        Intent photosIntent = new Intent(this, PhotosActivity.class);
        photospec.setContent(photosIntent);

        // Tab for Songs
        TabSpec songspec = tabHost.newTabSpec("Songs");
        songspec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_songs_tab));
        Intent songsIntent = new Intent(this, SongsActivity.class);
        songspec.setContent(songsIntent);


        // Tab for Videos
        TabSpec videospec = tabHost.newTabSpec("Videos");
        videospec.setIndicator("", getApplicationContext().getResources().getDrawable(R.drawable.icon_videos_tab));
        Intent videosIntent = new Intent(this, VideosActivity.class);
        videospec.setContent(videosIntent);

        // Adding all TabSpec to TabHost
        tabHost.addTab(photospec); // Adding photos tab
        tabHost.addTab(songspec); // Adding songs tab
        tabHost.addTab(videospec); // Adding videos tab
2
ответ дан 28 November 2019 в 04:21
поделиться

Создайте XML-файл селектора tabicon.xml и вставьте этот код

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/tab_enbled" android:state_selected="true"/>
    <item android:drawable="@drawable/tab_default" android:state_selected="false"/>
</selector>

. Теперь перейдите в TabActivity и введите этот код

TabSpec MyTab = tabhost.newTabSpec("MyTab");
MyTab.setIndicator("", getResources().getDrawable(R.drawable.tabicon));
//note:if you give some text in setIndicator sometimes the icon will not be showed. 
Intent tabIntent = new Intent(this, TabOne.class);
TWTTab.setContent(tabIntent);
.
6
ответ дан 28 November 2019 в 04:21
поделиться

Прежде всего, у вас должно быть два изображения, потому что вы хотите изменить одно изображение на другое, поэтому вам нужны оба изображения, и вы должны поместить их в три папки для рисования.

В моем примере у меня есть изображения, один из которых называется icon1.png и icon2.png .

После этого создайте xml-файл внутри папок для рисования (один и тот же файл для всех папок для рисования). Это файл:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use icon1 -->
<item android:drawable="@drawable/icon1"
      android:state_selected="true" />
<!-- When not selected, use icon2-->
<item android:drawable="@drawable/icon2" />
</selector>

Вы можете выбрать, какое изображение будет отображаться при выборе вкладки. В этом случае появится значок icon1 , потому что мы объявили его в теге, где state_selected = true .

Итак, теперь у вас есть два изображения и файл xml внутри трех папок для рисования. Хорошо!

Теперь, в классе, который вы объявляете вкладки, добавьте эту строку для каждой вкладки, которую вы хотите добавить.

tabHost.addTab(tabHost
.newTabSpec("one")
.setIndicator("The Tab",
  res.getDrawable(R.drawable.yourxmlfile))
.setContent(new Intent(this, YourClass.class)));

Помните, что R.drawable.yourxmlfile соответствует XML-файлу, который вы создали в папках для рисования.

Вот и все! Надеюсь, это поможет вам.

16
ответ дан 28 November 2019 в 04:21
поделиться

@Suchismita лучше использовать TextView вместо TabActivity. Я столкнулся со следующими проблемами в табачной деятельности

  • Я не мог начать другое действие в той же вкладке, это главная проблема, с которой я столкнулся

  • Следующая настройка вид вкладки, я не смог изменить разделитель drawable.

  • И TabActivity устарела в ICS

Далее, используя TextView, я обнаружил, что очень легко обрабатывать события и поток операций, здесь у вас есть полный контроль над поведением приложения и Также вы можете настроить внешний вид вкладки так, как вы хотите.

Вас интересует, как реализовать?

0
ответ дан 28 November 2019 в 04:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: