Bir aktivitenin içinde birden fazla parçam var. Bir butona tıkladığımda yeni bir parça başlatıyorum. Doğal olarak onPause()
mevcut Fragman ve onResume()
yeni Fragment yöntemlerinin çağrılmasını bekliyordum. Peki bu gerçekleşmiyor.
LoginFragment.java
public class LoginFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.login_fragment, container, false);
final FragmentManager mFragmentmanager = getFragmentManager();
Button btnHome = (Button)view.findViewById(R.id.home_btn);
btnHome.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
HomeFragment fragment = new HomeFragment();
FragmentTransaction ft2 = mFragmentmanager.beginTransaction();
ft2.setCustomAnimations(R.anim.slide_right, R.anim.slide_out_left
, R.anim.slide_left, R.anim.slide_out_right);
ft2.replace(R.id.middle_fragment, fragment);
ft2.addToBackStack("");
ft2.commit();
}
});
}
@Override
public void onResume() {
Log.e("DEBUG", "onResume of LoginFragment");
super.onResume();
}
@Override
public void onPause() {
Log.e("DEBUG", "OnPause of loginFragment");
super.onPause();
}
}
HomeFragment.java
public class HomeFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.login_fragment, container, false);
}
@Override
public void onResume() {
Log.e("DEBUG", "onResume of HomeFragment");
super.onResume();
}
@Override
public void onPause() {
Log.e("DEBUG", "OnPause of HomeFragment");
super.onPause();
}
}
Beklediğim,
- Düğmesine tıklandığında, LoginFragment ile değiştirilir alır
HomeFragment ,
onPause()
bir LoginFragment veonResume()
içinde HomeFragment çağrılan - Geri basıldığında, HomeFragment dışarı poped ve LoginFragment ve görülür
onPause()
bir HomeFragment veonResume()
bir LoginFragment çağrılır.
Ne alıyorum,
- Düğmesine tıklandığında, HomeFragment doğru yerini alan LoginFragment , onResume () ait HomeFragment denir, ama OnPause () ait LoginFragment asla denir.
- Geri basıldığında HomeFragment doğru ortaya çıkarmak için haşhaş LoginFragment , OnPause () ait HomeFragment çağrılan, ancak onResume () ait LoginFragment asla çağrılır.
Bu normal bir davranış mı? Neden onResume()
ait LoginFragment geri düğmesine bastığınızda denilen almıyorum.