2017-04-03 67 views
-1

我試圖添加一個簡單的碎片,它在我使用它時完美工作,直到我切換旋轉比它崩潰。Android的碎片崩潰的方向變化

這是我的代碼:

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add_user); 

    //region Fragment 
    if(savedInstanceState==null){ 
    FragmentManager fragmentManager = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     Fragment_Titlebar fragment = new Fragment_Titlebar(); 
     fragmentTransaction.add(R.id.fragment, fragment); 
     fragmentTransaction.commit(); 
     Fragment_Titlebar header = (Fragment_Titlebar) getFragmentManager().findFragmentById(R.id.fragment); 
     header.initFragment(R.string.SignUp, 0, true, true);} 
    //endregion 

    voornaam = (EditText)findViewById(R.id.first_name_text); 
    achternaam = (EditText)findViewById(R.id.last_name_text); 
    profile = (CircleImageView)findViewById(R.id.profile_image); 

    try { 
     //Getting the google account 
     Intent intent = getIntent(); 
     if (intent.getExtras().get("User") instanceof GoogleSignInAccount) { 

      GoogleSignInAccount acct = (GoogleSignInAccount) intent.getExtras().get("User"); 
      voornaam.setText(acct.getGivenName()); 
      achternaam.setText(acct.getFamilyName()); 
      if (acct.getPhotoUrl() != null) { 
       Picasso.with(this).load(acct.getPhotoUrl()).into(profile); 

      } 
     } 
    } 
    catch (NullPointerException e) 
    { 

    } 
}} 

,將片段:

private TextView headerText; 
private ImageButton backButton; 
private ImageButton homeButton; 
private Toolbar background; 

public Fragment_Titlebar(){} 
@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_title_bar, container, false); 


    backButton = (ImageButton) view.findViewById(R.id.backButton); 
    backButton.setOnClickListener(
      new View.OnClickListener() 
      { 
       @Override 
       public void onClick(View v) { 
        goBack(v); 
       } 
      }); 

    homeButton = (ImageButton) view.findViewById(R.id.homeButton); 
    homeButton.setOnClickListener(
      new View.OnClickListener() 
      { 
       @Override 
       public void onClick(View v) { 
        goHome(v); 
       } 
      } 
    ); 

    headerText = (TextView) view.findViewById(R.id.headerText); 
    background = (Toolbar) view.findViewById(R.id.background); 

    return view; 
} 

最後錯誤消息:

致命異常:主 工藝:rickvanfessem.carcoolandroid,PID:18652 java.lang.RuntimeException:無法啓動活動ComponentInfo {rickvanfessem.carcooland roid/rickvanfessem.carcoolandroid.AddUser}:android.view.InflateException:二進制XML文件行#10:二進制XML文件行#10:錯誤的擴展類片段

我已經試圖做到這一點setRetainInstance(true)但沒有工作。

請幫助

編輯請求FOR XML XML的片段

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
<Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="?android:attr/actionBarSize" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/background" 
    android:background="@color/HeaderRed" 
    app:theme="@style/AppTheme" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"> 


    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <ImageButton 
      android:id="@+id/backButton" 
      style="@style/image_style" 
      android:layout_alignParentLeft="true" 
      android:src="@drawable/ic_arrow_back" 

      /> 

     <TextView 
      android:id="@+id/headerText" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_centerHorizontal="true" 
      style="@style/HeaderText" 
      tools:text="Test scherm"/> 

     <ImageButton 
      android:id="@+id/homeButton" 
      style="@style/image_style" 
      android:layout_alignParentRight="true" 
      android:src="@drawable/ic_home" 
      /> 


    </RelativeLayout> 


</Toolbar> 
</LinearLayout> 

回答

0

後再試此

編輯您的艙單

<activity 
      android:name=".MainActivity" 
      android:configChanges="orientation|keyboardHidden|screenSize" 
      android:label="@string/app_name" 
      /> 

MainActivity

添加此重寫方法

public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     if (newConfig.orientation== Configuration.ORIENTATION_PORTRAIT) 
     { 

     } 
     else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) 
     { 

     } 
    } 
+0

日Thnx!重寫方法不適用於你 –