Intereting Posts
Определить язык IME для клавиатуры на Android Android: Как поместить файл изображения с SD-карты в HashMap с помощью простого адаптера? Содержание содержимого панели инструментов Android InstantationException: невозможно создать экземпляр фрагмента, убедитесь, что имя класса существует, является общедоступным и имеет пустой конструктор, открытый Error: Ошибка: ресурс не найден, который соответствует указанному имени: attr 'colorAccent' Странный разделитель с панелью поддержки v7 Скрытые особенности разработки Android? Полнодиапазонный навигационный ящик Как безопасно включать и выключать масштабирование WebView по мере необходимости Android get Support Action Bar всегда возвращает NULL Реализация NotificationListenerService Как добавить значение уведомления для элемента NavigationView для Material Design Drawer? Использование SeekBar для управления объемом в Android? Java.lang.StringIndexOutOfBoundsException при воспроизведении видео в videoView: Android v 4.2.1 Phonegap – Обновление до 3.0 проблем с функциями API

Значок на Android TabHost

Я хочу реализовать такую ​​же функциональность, как и в iPhone

Введите описание изображения здесь

Я реализовал пользовательский Tabhost так же, как и в iPhone в нижней панели. Я могу установить два значка для состояния Normal / Selected, но мне нужен динамический значок с количеством уведомлений, как указано в Image.

благодаря

Android ViewBadger может быть решением для вас. (FYI, я еще не реализовал его)

Вот оснастка, которую вы можете получить как выход этого решения:

Введите описание изображения здесь

Это пример добавления значка на вкладке

chat_tab.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="0dip" android:layout_height="64dip" android:layout_weight="1" android:layout_marginLeft="-3dip" android:layout_marginRight="-3dip" android:orientation="vertical" android:background="@drawable/tab_indicator" > <ImageView android:id="@+id/chat_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/chat_icon" android:layout_centerHorizontal="true"/> <TextView android:id="@+id/new_notifications" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/chat_icon" android:layout_toRightOf="@+id/chat_icon" android:layout_marginLeft="-8dp" android:layout_marginTop="0dp" android:paddingTop="2dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingBottom="2dp" android:textSize="8sp" android:textStyle="bold" android:textColor="@android:color/primary_text_dark" android:background="@drawable/badge" android:visibility="gone"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/chat" style="@android:attr/tabWidgetStyle" android:textColor="@android:color/tab_indicator_text" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true"/> </RelativeLayout> 

Это badge.xml (красный круг для фона уведомлений), TextView id:new_notifications background

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <stroke android:width="2dp" android:color="#FFFFFF" /> <corners android:radius="10dp"/> <padding android:left="2dp" /> <solid android:color="#ff2233"/> </shape> 

Затем в коде вы можете просто сделать

 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View chatTab = inflater.inflate(R.layout.chat_tab, null); tvNewNotifications = (TextView) chatTab.findViewById(R.id.new_notifications); intent = new Intent().setClass(MainTab.this, Chat.class); tabSpec = tabHost .newTabSpec("chat") .setIndicator(chatTab) .setContent(intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 

Поскольку вы можете видеть, что моя Relative Layout имеет фону @drawable/tab_indicator вкладка indicator.xml является стандартным шаблоном для вкладки, который я получил из sdk, я предлагаю вам также получить его из папки api in sdk Так как вам также нужно скопировать некоторые изображения из выпадающих папок, вы можете найти его : your_sdk_drive: \ sdk \ platform \ android-8