2013-04-05 4 views
2

В приложении Facebook v2.3, когда вы переходите от одного действия (или frgament?) К другому, панель действий остается фиксированной во всех действиях (или фрагментах?). Например, если вы перемещаетесь с вашего новостного канала на страницу профиля кого-то, тогда панель действий остается постоянной, а страница ниже обновляется. Поэтому мой вопрос: возможно ли, чтобы это поведение использовалось только для действий? Или я должен просто иметь одно основное действие и фрагменты для всех вспомогательных операций?Как защитить панель действий от всех действий?

+1

Я считаю, что это одно основное действие, а затем фрагменты. – Rawkode

ответ

4

Один вид деятельности и столько фрагментов, сколько вам нужно.

момент, когда вы звоните startActivity(intent); среда будет катить активность анимации перехода со всем его содержимым (в том числе панели действий)

+0

Я отключил анимацию для переходов активности в моем приложении и ее работу идеально. Спасибо за подсказку. – ufdeveloper

+0

это еще один способ сделать это, о котором я не думал. Но просто имейте в виду, что это означает, что ActionBar все еще заменяется, он просто не имеет анимации. Таким образом, это может показаться не идеальным на более медленных/старых устройствах. – Budius

+0

Итак, вы предлагаете использовать разные фрагменты вместо действий? Что было бы лучше? – ufdeveloper

2

Вы можете иметь это поведение, используя только деятельности. Это методы, которые вам нужны в каждой деятельности.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_activity, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.button_1: 
      handleButton1(); 
      return true; 
     case android.R.id.button_2: 
      handleButton2(); 
      return true; 
      ... 
     default: 
      ... 
    } 
} 

Кроме того, вы можете получить доступ к объекту панели действий в своем onCreate и настроить его так, как вы хотите. Например, включение кнопки домой и т.д.:

ActionBar actionBar = getActionBar(); 
actionBar.setDisplayHomeAsUpEnabled(true); 
    ... 

Но, если у вас есть много мероприятий, вы, вероятно, не хотят делать это в каждом из них. Вместо этого вы можете иметь этот код в деятельности Super-класса, а затем продлить его действие. Это предпочтительный способ - вы делаете это только в одном месте.

+1

спасибо за комментарий, но я хочу, чтобы панель действий была зафиксирована во время перехода к другой активности. Использование вышеуказанного подхода обновляет всю активность, я не хочу, чтобы панель действий обновлялась – ufdeveloper

Смежные вопросы