Урок 76. Tab - вкладки. Общий обзор

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 76. Tab - вкладки. Общий обзор

Сообщение damager82 » 06 май 2012, 23:00

В этом уроке:
- создаем экран с вкладками
- используем иконку в названии вкладки
- используем обработчик перехода между вкладками


Click here to read this article!
Последний раз редактировалось damager82 19 май 2017, 10:18, всего редактировалось 4 раза.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

viacheslav
Сообщения: 2
Зарегистрирован: 07 май 2012, 04:42

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение viacheslav » 07 май 2012, 04:44

Гугл вроде рекомендует не использовать вкладки, но с удовольствием почитаю. Спасибо :)

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение damager82 » 07 май 2012, 21:59

viacheslav писал(а):Гугл вроде рекомендует не использовать вкладки, но с удовольствием почитаю. Спасибо :)
Интересно, не встречал такого мнения. Скиньте пруфлинк, плз, если найдете. Я добавлю в урок эту инфу.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

viacheslav
Сообщения: 2
Зарегистрирован: 07 май 2012, 04:42

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение viacheslav » 07 май 2012, 23:04

На курсах по андройду препод говорил. Сказал, что раньше телефоны были маленькие и табы делали вверху, потом телефоны стали большие и их перенесли вниз, чтобы пальцем доставать можно было) А вообще, если я ничего не перепутал, то гугл рекомендует от них отказаться вообще.

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение andev » 08 май 2012, 09:24

damager82 писал(а):Интересно, не встречал такого мнения. Скиньте пруфлинк, плз, если найдете.
http://developer.android.com/reference/ ... ivity.html
public class TabActivity extends ActivityGroup
This class is deprecated.
New applications should use Fragments instead of this class; to continue to run on older devices, you can use the v4 support library which provides a version of the Fragment API that is compatible down to DONUT.

student_fm
Сообщения: 1
Зарегистрирован: 08 май 2012, 13:03

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение student_fm » 08 май 2012, 13:23

1) как опустить табы вниз?
2) Как реализовать чтобы в каждой вкладке был свой стек активностей? При переключении вкладок переключаться между стеками:
вкладка1: A -> B -> C -> D
вкладка2: E -> F -> G
При этом чтобы внутри вкладки можно было передвигаться между активностями.

Короче говоря как реализовать нормальный TabBar. Уровень API - 7.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение damager82 » 10 май 2012, 09:25

andev писал(а):This class is deprecated.
New applications should use Fragments instead of this class; to continue to run on older devices, you can use the v4 support library which provides a version of the Fragment API that is compatible down to DONUT.
Так это же связано с фрагментами. Тут не только tab "запрещены".
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

arreke
Сообщения: 7
Зарегистрирован: 09 окт 2012, 13:51

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение arreke » 01 ноя 2012, 05:05

Подскажите, пожалуйста, как сделать вертикальный разделитель для вкладок, как на этой картинки - Изображение ?

$01ny$hko
Сообщения: 44
Зарегистрирован: 18 окт 2012, 10:11

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение $01ny$hko » 15 ноя 2012, 21:12

Доброго всем времени суток!
Подскажите, пожалуйста, как правильно добавить в данный код иконки для каждой вкладки?

Код: Выделить всё

	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        
        
        TabHost tabHost = getTabHost();

		TabHost.TabSpec tabSpec;

		tabSpec = tabHost.newTabSpec("tag1");
		tabSpec.setIndicator("Погнали!");
		tabSpec.setContent(new Intent(this, DroveActivity.class));
		tabHost.addTab(tabSpec);
		
		tabSpec = tabHost.newTabSpec("tag2");
		tabSpec.setIndicator("Рейтинг");                                                               в этой строке продолжить так ,res.getDrawable(R.drawable.android_menu_tab)
		tabSpec.setContent(new Intent(this, RatingActivity.class));
		tabHost.addTab(tabSpec);

		tabSpec = tabHost.newTabSpec("tag3");
		tabSpec.setIndicator("Карта");
		tabSpec.setContent(new Intent(this, MapActivity.class));
		tabHost.addTab(tabSpec);
		
		Display display = getWindowManager().getDefaultDisplay();
		Log.d("Resolution", "resolution: "+display.getWidth()+" x "+ display.getHeight());
    }
    
   
	
	
	 @Override
	    public boolean onCreateOptionsMenu(Menu menu) {
	        getMenuInflater().inflate(R.menu.activity_main, menu);
	        return true;
	    }

	
}
И ещё не совсем понятный момент: нужно для этого ещё что-нибудь,кроме как добавить сами иконки в res/drawable/ ...?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение rezak90 » 15 ноя 2012, 22:10

заместь tabSpec.setIndicator("Погнали!"); нужно передавать не текст а вьюшку, код примерно должен выглядеть так:

Код: Выделить всё

ImageView iv = new ImageView(this, null);
iv.setBackgroundResource(R.drawable.my_icon);
tabSpec.setIndicator(iv);
R.id.team
Политика на форуме запрещена

nubodroid
Сообщения: 28
Зарегистрирован: 19 ноя 2012, 08:20

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение nubodroid » 19 ноя 2012, 08:26

Всем доброго времени суток.
Как опустить вкладки вниз?

Всем заранее спасибо

З.Ы. Тут уже был этот вопрос... может народ просто не заметил его....

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение rezak90 » 19 ноя 2012, 09:06

nubodroid писал(а):Всем доброго времени суток.
Как опустить вкладки вниз?

Всем заранее спасибо

З.Ы. Тут уже был этот вопрос... может народ просто не заметил его....
http://stackoverflow.com/questions/2401 ... in-android
http://stackoverflow.com/questions/2395 ... the-bottom
R.id.team
Политика на форуме запрещена

nubodroid
Сообщения: 28
Зарегистрирован: 19 ноя 2012, 08:20

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение nubodroid » 19 ноя 2012, 09:15

rezak90 писал(а):
nubodroid писал(а):Всем доброго времени суток.
Как опустить вкладки вниз?

Всем заранее спасибо

З.Ы. Тут уже был этот вопрос... может народ просто не заметил его....
http://stackoverflow.com/questions/2401 ... in-android
http://stackoverflow.com/questions/2395 ... the-bottom
Спасибо большое! Получилось ))

kotikkirill
Сообщения: 5
Зарегистрирован: 14 янв 2013, 00:04

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение kotikkirill » 03 фев 2013, 17:15

подскажите пожалуйста, как вставить в заголовки вкладок String переменные из res/values/strings.xml

искал в интернете, так и не нашел

Аватара пользователя
dens
Сообщения: 47
Зарегистрирован: 03 фев 2013, 00:14

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение dens » 03 фев 2013, 19:49

kotikkirill писал(а):подскажите пожалуйста, как вставить в заголовки вкладок String переменные из res/values/strings.xml
искал в интернете, так и не нашел

Код: Выделить всё

getResources().getString(R.string.id)

zenit
Сообщения: 13
Зарегистрирован: 03 фев 2013, 22:59

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение zenit » 17 фев 2013, 22:23

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

Озорная Свинья
Сообщения: 59
Зарегистрирован: 02 фев 2013, 00:03

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение Озорная Свинья » 17 фев 2013, 22:40

Ну это очень печально :(

Volha
Сообщения: 61
Зарегистрирован: 20 авг 2012, 17:39

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение Volha » 21 фев 2013, 17:11

Как сделать чтобы ширина заголовка вкладки была процент от экрана? Или хотя бы фиксированный размер был.
Передаю в заголовок вьюшку и его тут же неумеренно раздувает (а в портретном варианте на планшете это выглядит просто ужасно). Хотя даже пыталась ширину в дп задавать, не помогает.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение rezak90 » 21 фев 2013, 21:57

Volha писал(а):Как сделать чтобы ширина заголовка вкладки была процент от экрана? Или хотя бы фиксированный размер был.
Передаю в заголовок вьюшку и его тут же неумеренно раздувает (а в портретном варианте на планшете это выглядит просто ужасно). Хотя даже пыталась ширину в дп задавать, не помогает.
трудно так вам сразу ответить, может у вас там fill_parent где то стоит, может ещё чего, выкладывайте код и будем глядеть
R.id.team
Политика на форуме запрещена

Volha
Сообщения: 61
Зарегистрирован: 20 авг 2012, 17:39

Re: Урок 76. Tab - вкладки. Общий обзор

Сообщение Volha » 22 фев 2013, 11:13

Вот заголовок вкладки tab_info_header.xml:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
	 xmlns:android="http://schemas.android.com/apk/res/android"
	 android:layout_width="200dp"
	 android:layout_height="20dp">
  	<ImageView
	   	android:id="@+id/ivTabHeader"
	   	android:layout_width="200dp"
	   	android:layout_height="20dp"
		android:background="@drawable/tab_icon_info_selector"
    />
	<TextView
		 android:layout_width="wrap_content"
		 android:layout_height="wrap_content"
		 android:text="@string/info"
		 android:layout_marginLeft="20dp"
		 android:layout_alignParentLeft="true"
	 />
</RelativeLayout>
Добавляю вкладку:

Код: Выделить всё

     TabHost tabHost = getTabHost();
     TabHost.TabSpec tab;
     tab = tabHost.newTabSpec("tab_hotelInfo");
     tab.setIndicator(getLayoutInflater().inflate(R.layout.tab_info_header, null));
     tab.setContent(new Intent(this, Activity_HotelInfo.class));
Нужен еще какой-то код?

Ответить