Intereting Posts
Цветные кнопки в Android с материальным дизайном и AppCompat Вкладки вкладки в Android 4 с поддержкой библиотеки (ActionBarSherlock) Android: Facebook API для публикации Как определить положение столбца в шахматном менеджере макетов сетки Есть ли способ для объектов версии в Firebase, предназначенных только для чтения? Android 4.3 BLE, как написать характеристику Системный сбой при переопределении долженInterceptRequest в WebViewClient Как начать диалог (например, будильник / повтор сигнала тревоги), который можно щелкнуть без разблокировки экрана Программы отлично работают с LibGDX-десктопом, но не с LibGDX – Android? Как отправить данные из службы в мою деятельность? Использование функции «Прокрутить до выхода» в списке последних приложений ICS Как получить все аудиофайлы с sd card android Поддержка Android Multiscreen в android: проблема 540×960 Android java.net.SocketException: socket failed: EACCES (Permission denied) @ Синглтон в кинжале 2 потокобезопасен?

Значок на 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