0

現在、私は4つのフラグメントでタブレイアウトを設定しています。私は元々フラグメント間の切り替え時に発生した重複IDエラーを取得していた1つのフラグメントを持っています。以下のコードを適用して問題を解決することができましたが、切り替え時にまだコンテンツビューが作成されていません。Androidコンテンツビューはまだ作成されていませんフラグメント

public class contactus2 extends Fragment { 

private static View view; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    if (view != null) { 
     ViewGroup parent = (ViewGroup) view.getParent(); 
     if (parent != null) 
      parent.removeView(view); 
    } 
    try { 
     view = inflater.inflate(R.layout.contactus2, container, false); 
    } catch (InflateException e) { 
     Log.i("Inflate", "View Hidden"); 

    } 
    return view; 
} 

}

+0

あなたは実際のアンドロイドエラーを提供してください。 –

答えて

0

onCreateView()静的ビューオブジェクトを参照することはありません。 Androidは、アプリケーションを循環するときにフラグメントのビューを分解して再構築します。このため、常にonCreateView内で新しいビューを展開する必要があります。あなたが今持っている方法では、あなたのアプリは複数の断片のビューを再利用しようとします。

このような何か:

public class contactus2 extends Fragment { 

    private View rootView; 

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

基本的には、お使いのフラグメントのビューの参照に静的割り当てを削除します。

+0

ありがとうございました – james

関連する問題