手機的方向和片段翻譯錯誤。我有一個活動和一些片段。第一個片段立即出現在帶有徽標的活動上,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
提交
取消