2015-03-10 2 views
0

У меня есть вопрос относительно транзакций фрагментов. У меня есть три фрагмента в моей AuthenticationActivity который я удаление и добавление на основе кликов пользователей:Фрагмент транзакций android

  • приветственном фрагмент,
  • фрагмент входа,
  • фрагмент Регистрация

У меня жесткий что происходит при изменении ориентации и удалении фрагмента и добавлении другого фрагмента.

Вопрос 1: Когда я меняю ориентацию, я проверяю, является ли мой фрагмент нулевым, а затем, если мой фрагмент виден. Он говорит, что фрагмент не является нулевым, а фрагмент не отображается, хотя я вижу фрагмент на экране.

Вопрос 2: Когда я удаляю данный фрагмент и добавляю еще один фрагмент и изменяю ориентацию и проверяю, является ли предыдущий фрагмент нулевым. Несмотря на то, что я удалил предыдущий фрагмент, он говорит, что фрагмент не является нулевым, но не видимым. Я этого не понимаю.

Было бы здорово, если бы кто-нибудь помог мне с этими проблемами.

public class AuthenticationActivity extends Activity implements 
     OnClickAuthentication, LoginInterface, SignupInterface { 
    private final static String TAG = "AuthenticationActivity"; 
    private final static String WELCOMETAG = "WelcomeFragmentTAG"; 
    private final static String LOGINTAG = "LoginFragmentTAG"; 
    private final static String SIGNUPTAG = "SignupFragmentTAG"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_authentication); 
     Log.d(TAG, "in onCreate"); 
     Fragment fragment = getFragmentManager().findFragmentByTag(WELCOMETAG); 
     if (fragment == null) { 
      Log.d(TAG, "welcome fragment is null in onCreate"); 
      getFragmentManager() 
        .beginTransaction() 
        .add(R.id.authentication_parent0_linear, 
          new WelcomeFragment(), WELCOMETAG).commit(); 
     } else { 
      Log.d(TAG, "welcome fragment is not null in onCreate"); 
      if (fragment.isVisible()) { 
       Log.d(TAG, "welcome fragment is visible"); 
      } else { 
       Log.d(TAG, "welcome fragment is not visible"); 
      } 
     } 
    } 

ответ

1

Взгляните на жизненный цикл из Activity и Fragment: Fragments

Fragment становится видимым, когда Activity возобновляется.

+0

Является ли фрагмент невидимым в onCreate ?? – krishna

+0

А также почему удаленный фрагмент не возвращается null? – krishna

+0

Я предполагаю, что транзакция еще не была «обработана», когда вы проверяете, была ли она удалена. –

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