Урок 77. Tab - вкладки. TabActivity. Activity, как содержимое вкладки
Урок 77. Tab - вкладки. TabActivity. Activity, как содержимое вкладки
В этом уроке:
- используем Activity в качестве содержимого вкладки
- используем TabActivity
Click here to read this article!
- используем Activity в качестве содержимого вкладки
- используем TabActivity
Click here to read this article!
Последний раз редактировалось damager82 19 май 2017, 10:19, всего редактировалось 4 раза.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Прошу помощи в верстке дизайна табов.
хочу вот так:
на данный момент все вот так:
tabpic.xml:
drawable/tabnonselec
drawable/tabselect
собственно вопрос:
1)Как в шапке табов сделать фон такой же, как в дизайне на первой картинке.
2)Как указать отступы между табами.
3)Как текст заголовков табов сделать по центру.
хочу вот так:
на данный момент все вот так:
Код: Выделить всё
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/tabpic"
/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.9" >
</FrameLayout>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/tabpic" >
<TextView
android:id="@+id/CountSelectedl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center"
android:layout_marginLeft="15dp"
android:text="@string/Selected_Count"
android:textColor="#fafffc"
android:textStyle="bold" />
<Button
android:id="@+id/buttontemp"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_gravity="right|center"
android:layout_marginRight="15dp"
android:background="@android:color/transparent"
android:clickable="true"
android:text="Применить"
android:textColor="#fafffc"
android:textStyle="bold" />
</FrameLayout>
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/tabselect" android:state_selected="true" android:tileMode="repeat" />
<!-- When not selected, use white -->
<item android:drawable="@drawable/tabnonselect" />
</selector>
drawable/tabselect
собственно вопрос:
1)Как в шапке табов сделать фон такой же, как в дизайне на первой картинке.
2)Как указать отступы между табами.
3)Как текст заголовков табов сделать по центру.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
В прошлом уроке (76) я рассказывал, как самим можно tab рисовать. Я так понял, именно это вам и нужно?kolipass писал(а):Прошу помощи в верстке дизайна табов.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
К сожалению там не так подробно, как нужно мне.
хотя бы как правильно натянуть фон для заголовка таба? он натягивается (в XML я это указал) но выглядит не пойми как.
хотя бы как правильно натянуть фон для заголовка таба? он натягивается (в XML я это указал) но выглядит не пойми как.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Напишите здесь код, как вы используете tabpic.xml.kolipass писал(а):хотя бы как правильно натянуть фон для заголовка таба? он натягивается (в XML я это указал) но выглядит не пойми как.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Только в xml-ке
Код: Выделить всё
<TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" [b]android:background="@drawable/tabpic"[/b] />
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Сделайте свой layout для заголовков, как в уроке 76. И там в корневом LinearLayout в качестве background укажите tabpic.xml.kolipass писал(а):Только в xml-ке
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Большое спасибо. Это решило часть моих задач. Вот только как задать разные цвета на отображения в активно/не активно?
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
В качестве background в LinearLayout сейчас указан tabpic.xml и не работает смена картинки при выделении табов?kolipass писал(а):Большое спасибо. Это решило часть моих задач. Вот только как задать разные цвета на отображения в активно/не активно?
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
да. сейчас
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="48px"
android:background="@drawable/tabpic" android:layout_margin="2dp">
<TextView
android:id="@+id/Landmark_caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/Landmark">
</TextView>
</FrameLayout>
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Пишу ваш код в item.xml и добавляю вкладку:kolipass писал(а):Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="48px" android:background="@drawable/tabpic" android:layout_margin="2dp"> <TextView android:id="@+id/Landmark_caption" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/Landmark"> </TextView> </FrameLayout>
Код: Выделить всё
TabSpec ts = th.newTabSpec("Tag1");
ts.setIndicator(getLayoutInflater().inflate(R.layout.item, null));
ts.setContent(R.id.tab1);
th.addTab(ts);
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Заработало когда android:tileMode="repeat" убрал из
<item android:drawable="@drawable/tabselect" android:state_selected="true" android:tileMode="repeat" />
спасибо. осталось с паддингами доделать
<item android:drawable="@drawable/tabselect" android:state_selected="true" android:tileMode="repeat" />
спасибо. осталось с паддингами доделать
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Как из активности во вкладке создать новую активность, но чтобы она была так же внутри вкладки, а не поверх?
Т.е. открываем новую активность, но табы так же присутствовать должны.
Спасибо.
Т.е. открываем новую активность, но табы так же присутствовать должны.
Спасибо.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Через ActivityGroup походу можно это реализовать.karakum писал(а):Как из активности во вкладке создать новую активность, но чтобы она была так же внутри вкладки, а не поверх?
Т.е. открываем новую активность, но табы так же присутствовать должны.
Спасибо.
Ссылки:
http://stackoverflow.com/questions/1306 ... in-android
http://united-coders.com/nico-heid/use- ... -activity/
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Здравствуйте! Пытаюсь следовать Вашим урокам. Сделал макетик с 4-мя TAB - вкладками На каждой вкладке свой Activity. В каждом Aktivity свой List. Все, в общем, работает: отображается и переключается между вкладками. Но меня смущает, что при загрузке приложения и при переключениях между вкладками в LogCat выдаются такие строки (приведено начало):
08-27 15:00:34.469: E/Trace(643): error opening trace file: No such file or directory (2)
08-27 15:00:35.439: I/Choreographer(643): Skipped 125 frames! The application may be doing too much work on its main thread.
08-27 15:00:35.480: D/gralloc_goldfish(643): Emulator without GPU emulation detected.
08-27 15:00:35.730: I/Choreographer(643): Skipped 55 frames! The application may be doing too much work on its main thread.
08-27 15:00:41.120: I/Choreographer(643): Skipped 49 frames! The application may be doing too much work on its main thread.
08-27 15:00:41.250: I/Choreographer(643): Skipped 37 frames! The application may be doing too much work on its main thread.
08-27 15:00:42.562: I/Choreographer(643): Skipped 43 frames! The application may be doing too much work on its main thread.
08-27 15:00:49.834: I/Choreographer(643): Skipped 44 frames! The application may be doing too much work on its main thread.
Я так понял, что вложить файлы я не могу
Поэтому прилагаю только это:
public class MainActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// получаем TabHost
TabHost tabHost = getTabHost();
// инициализация была выполнена в getTabHost
// метод setup вызывать не нужно
TabHost.TabSpec tabSpec;
tabSpec = tabHost.newTabSpec("tag1");
tabSpec.setIndicator("Accounts");
tabSpec.setContent(new Intent(this, Acc.class));
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec("tag2");
tabSpec.setIndicator("Operations");
tabSpec.setContent(new Intent(this, Oper.class));
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec("tag3");
tabSpec.setIndicator("Budgets");
tabSpec.setContent(new Intent(this, Bud.class));
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec("tag4");
tabSpec.setIndicator("Reports");
tabSpec.setContent(new Intent(this, Rep.class));
tabHost.addTab(tabSpec);
}
Спасибо за ответ.
08-27 15:00:34.469: E/Trace(643): error opening trace file: No such file or directory (2)
08-27 15:00:35.439: I/Choreographer(643): Skipped 125 frames! The application may be doing too much work on its main thread.
08-27 15:00:35.480: D/gralloc_goldfish(643): Emulator without GPU emulation detected.
08-27 15:00:35.730: I/Choreographer(643): Skipped 55 frames! The application may be doing too much work on its main thread.
08-27 15:00:41.120: I/Choreographer(643): Skipped 49 frames! The application may be doing too much work on its main thread.
08-27 15:00:41.250: I/Choreographer(643): Skipped 37 frames! The application may be doing too much work on its main thread.
08-27 15:00:42.562: I/Choreographer(643): Skipped 43 frames! The application may be doing too much work on its main thread.
08-27 15:00:49.834: I/Choreographer(643): Skipped 44 frames! The application may be doing too much work on its main thread.
Я так понял, что вложить файлы я не могу
Поэтому прилагаю только это:
public class MainActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// получаем TabHost
TabHost tabHost = getTabHost();
// инициализация была выполнена в getTabHost
// метод setup вызывать не нужно
TabHost.TabSpec tabSpec;
tabSpec = tabHost.newTabSpec("tag1");
tabSpec.setIndicator("Accounts");
tabSpec.setContent(new Intent(this, Acc.class));
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec("tag2");
tabSpec.setIndicator("Operations");
tabSpec.setContent(new Intent(this, Oper.class));
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec("tag3");
tabSpec.setIndicator("Budgets");
tabSpec.setContent(new Intent(this, Bud.class));
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec("tag4");
tabSpec.setIndicator("Reports");
tabSpec.setContent(new Intent(this, Rep.class));
tabHost.addTab(tabSpec);
}
Спасибо за ответ.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Все же. Как понимать сообщения: "Skipped 125 frames! The application may be doing too much work on its main thread."
Я уже привык видеть их достаточно часто и понял, что это - не ошибка. А что?
Я уже привык видеть их достаточно часто и понял, что это - не ошибка. А что?
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
ActivityGroup - устарел! Так пишут на developer.android.com! Говорят надо использовать Fragment или FragmentManager!!!!damager82 писал(а):Через ActivityGroup походу можно это реализовать.karakum писал(а):Как из активности во вкладке создать новую активность, но чтобы она была так же внутри вкладки, а не поверх?
Т.е. открываем новую активность, но табы так же присутствовать должны.
Спасибо.
Ссылки:
http://stackoverflow.com/questions/1306 ... in-android
http://united-coders.com/nico-heid/use- ... -activity/
Подробней об этом тут: http://developer.android.com/reference/ ... Group.html. Там увидите:
This class is deprecated.
Use the new Fragment and FragmentManager APIs instead; these are also available on older platforms through the Android compatibility package.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Здравствуйте, всем! Подскажите, что не так сделала или может вообще забыла что-то сделать, но у меня в MainActivity.java
1). наследование от TabActivty перечёркнуто вот в этих сторчках:
import android.app.TabActivity;
public class MainActivity extends TabActivity
2). Вот с этой строкой что делать, её ведь быть не должно?
@SuppressWarnings("deprecation")
1). наследование от TabActivty перечёркнуто вот в этих сторчках:
import android.app.TabActivity;
public class MainActivity extends TabActivity
2). Вот с этой строкой что делать, её ведь быть не должно?
@SuppressWarnings("deprecation")
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Ничего страшного в этом нет это всего лишь предупреждение, что данный метод или класс является устаревшим и в будущем возможно не будет поддерживаться, в документации могут быть, также, прописаны рекомендации чем можно его заменить. Но это не ошибка и код работать будет. Если построить проект с более старыми версиями Android API, то это предупреждение не будет выдаваться вовсе.
Re: Урок 77. Tab - вкладки. TabActivity. Activity, как содер
Спасибо!! Да всё действительно работает. А стоит ли его заменять если приложение будет рассчитано, в основном, на версии, начиная с 2.3.3 и выше?