Урок 108. Android 3. ActionBar. Навигация - табы и выпадающий список
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Як я зрозумів tab content може бути тільки Fragment?
До мене щось не доходить) як правильно зробити таке:
tab1 -> fragment1->fragment2->fragment3
tab2 -> fragment4->fragment5->fragment6
tab3 -> fragment7->fragment8->fragment9
як в одному tab зробити переходи між декількома вікнами? Це все має виконувати Activity, з фрагмента тільки повертати повідомлення до Activity?
Чи можна із Fragment запустити інший Fragment, якщо так то як?)
буду радий допомоги...
До мене щось не доходить) як правильно зробити таке:
tab1 -> fragment1->fragment2->fragment3
tab2 -> fragment4->fragment5->fragment6
tab3 -> fragment7->fragment8->fragment9
як в одному tab зробити переходи між декількома вікнами? Це все має виконувати Activity, з фрагмента тільки повертати повідомлення до Activity?
Чи можна із Fragment запустити інший Fragment, якщо так то як?)
буду радий допомоги...
-
- Сообщения: 59
- Зарегистрирован: 02 фев 2013, 00:03
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Почему?Озорная Свинья писал(а):Монгол штоле?
хохол) Могу и на руском писать... только с ошыбками... если устраивает, буду писать на руском)
-
- Сообщения: 59
- Зарегистрирован: 02 фев 2013, 00:03
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Переведи вопрос на руске изык?
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Вы так и не просмотрели наверное примеры по фрагментам как я и рекомендовал. Переходы делаются replace методом от FragmentManager'a он заменяет текущий фрагмент на необходимый.як в одному tab зробити переходи між декількома вікнами? Це все має виконувати Activity, з фрагмента тільки повертати повідомлення до Activity?
Чи можна із Fragment запустити інший Fragment, якщо так то як?)
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Я ознаемился на уроке 105 наведен пример, я создал простое приложение использовал TabHost для примера урок 76, создал 3 таба, content вставил 3 разних Fragment, потом из фрагмента при какомнто event:Вы так и не просмотрели наверное примеры по фрагментам как я и рекомендовал. Переходы делаются replace методом от FragmentManager'a он заменяет текущий фрагмент на необходимый.
Fragment newFragment = new NewFragment();
ft = getFragmentManager().beginTransaction();
ft.replace(R.id.tabcontent, newFragment);
ft.commit();
в меня в трех табах заменилось вместимое...
использовал етот пример:
https://github.com/JakeWharton/ActionBa ... tTabs.java
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Значит Вы что то не так делаете, по этому примеру многие приложения написаны и прекрасно работают, так что смотрите внимательней. Показывайте код.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Кстати, если генерить в одном из фрагментов список через курсор адаптер, то при переключении между вкладками (конкретнее, если такой список в третьей вкладке, мы её открыли, у нас забился список, потом мы открыли вторую, а потом снова третью и листаем список) возникает ошибка, ибо фрагмент мэнеджер (или кто-то там) пытался запомнить текущее состояние списка (то, что было отображено в окошке), и, когда мы вернулись со второй вкладки, он восстановил картину, но всё, что не поместилось на экран уже удалилось из памяти и фрагмент это заново не стал подсасывать. Пишет, что курсоров уже нет (есть только те, что были видны при переключении вкладок).
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Разобрался нимного из фрагментами)rezak90 писал(а):Значит Вы что то не так делаете, по этому примеру многие приложения написаны и прекрасно работают, так что смотрите внимательней. Показывайте код.
Появился новый вопрос, наведу код:
public class MainActivity extends SherlockFragmentActivity {
public static String tab1 = "tab1", tab2 = "tab2", tab3 = "tab3";
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(com.actionbarsherlock.R.style.Theme_Sherlock);
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_navigation);
ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.addTab(bar.newTab().setText("Tab 1").setTabListener(new TabListener<Fragment1>(this, tab1, Fragment1.class, null)));
bar.addTab(bar.newTab().setText("Tab 2").setTabListener(new TabListener<Fragment2>(this, tab2, Fragment2.class, null)));
bar.addTab(bar.newTab().setText("Tab 3").setTabListener(new TabListener<Fragment3>(this, tab3, Fragment3.class, null)));
}
public class TabListener<T extends Fragment> implements ActionBar.TabListener {
private final FragmentActivity mActivity;
private final String mTag;
private final Class<T> mClass;
private final Bundle mArgs;
private Fragment mFragment;
public TabListener(FragmentActivity activity, String tag, Class<T> clz, Bundle args) {
mActivity = activity;
mTag = tag;
mClass = clz;
mArgs = args;
FragmentTransaction ft = mActivity.getSupportFragmentManager().beginTransaction();
// Check to see if we already have a fragment for this tab, probably
// from a previously saved state. If so, deactivate it, because our
// initial state is that a tab isn't shown.
mFragment = mActivity.getSupportFragmentManager().findFragmentByTag(mTag);
if (mFragment != null && !mFragment.isDetached()) {
ft.detach(mFragment);
}
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft = mActivity.getSupportFragmentManager().beginTransaction();
if (mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs);
ft.add(android.R.id.content, mFragment, mTag);
ft.commit();
} else {
ft.attach(mFragment);
ft.commit();
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft = mActivity.getSupportFragmentManager().beginTransaction();
if (mFragment != null) {
ft.detach(mFragment);
ft.commitAllowingStateLoss();
}
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
}
}
TabListener взял сдесь http://stackoverflow.com/questions/7992 ... tton-press
В Fragment1 layout-e создал кнопку:
Button but = (Button)layout.findViewById(R.id.but);
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Fragment fragment4 = new Fragment4();
ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, fragment4);
ft.addToBackStack(null);
ft.commit();
}
});
Запустил, в Tab 1 перешол на fragment4, переключил на Tab 2 или на Tab 3 нажал кнопку back и в меня исчезло отображение компонентов в Tab 1
тоесть я был на Tab 2 а изменилось в Tab 1, как это можно исправить? Так сказать чтоб каждый из Tab имел свой transaction.
Ще таке уточнення android:minSdkVersion="8".
Если что не так подскажыте что делать, спасибо!
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
потому что вы в стек добавляете add fragment а нужно реплейсить replace
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Спасибо за подсказку, replace мне не подходить нужно всетаки add, проблема была ft = getFragmentManager().beginTransaction();rezak90 писал(а):потому что вы в стек добавляете add fragment а нужно реплейсить replace
Нужно было вызвать getSupportFragmentManager зделал так
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
parent = (FragmentActivity) activity;
}
ft = parent.getSupportFragmentManager().beginTransaction();
но осталась ище вопрос) наведу пример в свовах что делаю
Запускаю приложение, нахожусь в tab1 нажымаю кнопку и перехожу на Fragment4, потом нажымаю на кнопку back срабатывает ft.addToBackStack(null); и я возвращаюсь на Fragment1, все нормально,
если перейти на Fragment4, потом зделать переход между вкладками и возвратиться обратно на tab1 в нас отображается Fragment4 все нормально, если нажать back вылитает приложение из ошыбкой
03-20 14:00:15.601: E/AndroidRuntime(1372): FATAL EXCEPTION: main
03-20 14:00:15.601: E/AndroidRuntime(1372): java.lang.IllegalStateException: Fragment already added: Fragment1{44f43090 #0 id=0x1020002 tab1}
Если есть возможность подскажыте что я не хорошо зделал) Спасибо!
Я питаюсь зделать такую задачу, есть несколько tab в каждом из них может быть несколько fragment, каждый из tab должен сохранять историю переходов.
Буду рад помощи...
Ище такой вопрос:
bar.addTab(bar.newTab().setText("Tab 1").setTabListener(new TabListener<Fragment1>(this, tab1, Fragment1.class, null)));
bar.addTab(bar.newTab().setText("Tab 2").setTabListener(new TabListener<Fragment2>(this, tab2, Fragment2.class, null)));
bar.addTab(bar.newTab().setText("Tab 3").setTabListener(new TabListener<Fragment3>(this, tab3, Fragment3.class, null)));
Здесь заместь this, можно поставить 3 разных Activity?
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Как считаете, почему - я ставлю как положено для 5 кнопок бара ifRoom , но даже в ландшафтном режиме, когда полно места - у меня на Action Bar всего 4 кнопки показывается (столько же , сколько и в портретном режиме).
И еще - можно ли в меню, выпадающем из ActionBar (три точки в верхнем правом углу) сделать разделитель? Пользователи пока мало натренированы, пункты меню слишком близко расплолжены..
И еще - можно ли в меню, выпадающем из ActionBar (три точки в верхнем правом углу) сделать разделитель? Пользователи пока мало натренированы, пункты меню слишком близко расплолжены..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
делайте android:showAsAction="always" и кнопки будут всегда показываться, на счёт разделителя не уверен, я только менял цвет меню но думаю и разделить можноOlivka писал(а):Как считаете, почему - я ставлю как положено для 5 кнопок бара ifRoom , но даже в ландшафтном режиме, когда полно места - у меня на Action Bar всего 4 кнопки показывается (столько же , сколько и в портретном режиме).
И еще - можно ли в меню, выпадающем из ActionBar (три точки в верхнем правом углу) сделать разделитель? Пользователи пока мало натренированы, пункты меню слишком близко расплолжены..
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Представляешь, поменяла - стала показываться кнопка, я еще в файле меню переставила парочку пунктов - меню взбесилось, кнопки стали делать совсем не те функции, что нужно. Пока поняла, что нужно было сделать проджекту Clean..........
Теперь вернула везде ifRoom - и стало показываться все нормально даже в портретном режиме
Теперь вернула везде ifRoom - и стало показываться все нормально даже в портретном режиме
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Теперь хочу disable сделать кнопке на actionbar (меню), вернее сделала, но хочу и картинку подставить светленькую. Не могу понять как. Через xml можно или нельзя?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
selector вместо простой иконкиOlivka писал(а):Теперь хочу disable сделать кнопке на actionbar (меню), вернее сделала, но хочу и картинку подставить светленькую. Не могу понять как. Через xml можно или нельзя?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Все решилось проще. Может кому-то пригодится.
Меняешь в коде и дело с концом.
Код: Выделить всё
item_filter = menu.findItem(R.id.item_filter);
item_filter.setIcon(R.drawable.filter1);
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
- Сообщения: 1
- Зарегистрирован: 21 июн 2013, 21:20
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Привет всем!
Скажите а как сделать чтобы табы были в виде RadioGroup / RadioButton? Где это настраивать и как?
Скажите а как сделать чтобы табы были в виде RadioGroup / RadioButton? Где это настраивать и как?
Re: Урок 108. Android 3. ActionBar. Навигация - табы и выпад
Здравствуйте!
На сколько я понял, то выпадающий список в Action Bar'е может находиться только на одном активити и работать приходится с фрагментами. Меня интересует такой вопрос: можно ли как то реализовать этот список, чтобы он был на всех активити, и с его помощью можно было переходить между этими активити?
Спасибо.
На сколько я понял, то выпадающий список в Action Bar'е может находиться только на одном активити и работать приходится с фрагментами. Меня интересует такой вопрос: можно ли как то реализовать этот список, чтобы он был на всех активити, и с его помощью можно было переходить между этими активити?
Спасибо.