手机的方向和片段翻译错误。我有一个活动和一些片段。第一个片段立即出现在带有徽标的活动上,3 秒后第二个片段翻译过来。问题是如果我改变手机的方向,第一个片段会以与我启动应用程序相同的延迟和相同的行为重新出现。主要活动:package com.mainpackage.pinbook;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.mainpackage.pinbook.com.autentification.LoginFragment;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.main_container , new MainScreen()); fragmentTransaction.commit();}}主屏幕:package com.mainpackage.pinbook;import android.os.Bundle;import android.os.Handler;import android.support.annotation.NonNull;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import com.mainpackage.pinbook.com.autentification.*;public class MainScreen extends Fragment{@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.main_screen , container , false);}private TextView entry_text;public static final String TAG = MainScreen.class.getSimpleName();@Overridepublic void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); new Handler().postDelayed(new Runnable() { @Override public void run() { slide(); } }, 3000);}
1 回答

慕容708150
TA贡献1831条经验 获得超4个赞
当设备旋转onCreate()时再次调用。像这样包装你的片段交易onCreate():
if (savedInstanceState == null) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_container , new MainScreen());
fragmentTransaction.commit();
}
这将防止第一个片段在您旋转时被放回顶部。
添加回答
举报
0/150
提交
取消