Android: Какой тип макета используется для управления различными видами с помощью кнопок на одном и том же мероприятии? - PullRequest
0 голосов
/ 15 апреля 2011

Рассмотрим приложение с родными часами для Android.Вот изображение этого, графика выглядит измененной (по крайней мере, по сравнению с моей), но она имеет смысл:

The tabs

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

Я уверен, что это очень простой вопрос, но я еще не сталкивался с ним, и я пытался найти его, но я думаю, что я не объяснил это достаточно хорошо для поиска в Google и SOдвигатель ... Спасибо!

Ответы [ 2 ]

1 голос
/ 15 апреля 2011

Вкладки могут быть настроены для всплытия различных представлений:

LocalActivityManager localActivityManager = new LocalActivityManager(this, false);
tabHost.setup(localActivityManager);

TabSpec spec = tabHost.newTabSpec("tab1").setIndicator("My Tab1").setContent(R.id.layout_tab1);
tabHost.addTab(spec);

spec = tabHost.newTabSpec("tab2").setIndicator("My Tab2").setContent(R.id.layout_tab2);
tabHost.addTab(spec);


spec = tabHost.newTabSpec("tab3").setIndicator("My Tab3").setContent(R.id.layout_tab3);
tabHost.addTab(spec);

Или они могут быть настроены для всплытия различных действий:

someActivity = new Intent().setClass(this, SomeActivity.class);
spec = tabHost.newTabSpec("tab3").setIndicator("My Activity Tab").setContent(someActivity);
tabHost.addTab(spec);

(обратите внимание, что setContent позволяет вам указатьint (указывает на идентификатор макета) или намерение (указывает на действие)

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

1 голос
/ 15 апреля 2011
...