AndroidフラグメントIDのビューが見つかりませんか?


287

ビューに追加しようとしているフラグメントがあります。

FragmentManager fragMgr=getSupportFragmentManager();
feed_parser_activity content = (feed_parser_activity)fragMgr
                                    .findFragmentById(R.id.feedContentContainer);
FragmentTransaction xaction=fragMgr.beginTransaction();

if (content == null || content.isRemoving()) {
    content=new feed_parser_activity(item.getLink().toString());
    xaction
        .add(R.id.feedContentContainer, content)
        .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
        .addToBackStack(null)
        .commit();
    Log.e("Abstract", "DONE");
}

このコードを実行すると、デバッグで次のエラーが発生します。

java.lang.IllegalArgumentException: No view found for id 0x7f080011 
   for fragment feed_parser_activity{41882f50 #2 id=0x7f080011}

feed_parser_activityxmlのフラグメントレイアウトに設定されたフラグメントです。
FragmentActivityを使用して、を保持するフラグメントレイアウトをホストしていfeed_parser_layoutます。
これを上で正しくコーディングしていますか?


3
XMLを含めることができますか?
jsmith

1
アクティビティでsetContentViewを呼び出す前にフラグメントトランザクションを作成すると、同じエラーが発生する可能性があります
Pavel

回答:


373

私は、私は間違ったレイアウトを指定していたことを実現するまで私は、あまりにもこの問題を抱えていたsetContentView()onCreate()FragmentActivityの方法。

に渡されるIDはFragmentTransaction.add()、あなたの場合R.id.feedContentContainer、で指定されたレイアウトの子である必要がありますsetContentView()

あなたは私たちにあなたのonCreate()方法を示さなかったので、おそらくこれは同じ問題です。


5
setContentViewで指定されたレイアウトの子とはどういう意味ですか?子供にする方法は?
NinjaCoder 2013

11
XMLで親ビュー内で宣言されている場合、ビューは別のビューの子です。すなわち。のTextView内部RelativeLayoutはの子ですRelativeLayout
howettl 2013

@howettl:私はそれが少し古い投稿であることを知っています。しかし、私はあなたの答えでこの問題を修正することはできません。ここにSOの質問があります:stackoverflow.com/questions/25844394/…-これで私を助けてくれますか?ありがとう!
TheDevMan

@howettl、同様の問題で私を助けてくれませんか。stackoverflow.com/questions/26966623/...
Vamsi Challa

3
私に起こりました。CTRL + C CTRL + Vの欠点。
0nyx 2015年

295

このエラーは、フラグメントネストしていて、getChildFragmentManager()ではなくgetSupportFragmentManager()を使用して追加した場合にも発生します。


10
鉱山はその逆だった。getChildFragmentManager()を呼び出してメインフラグメントコンテナーに追加しようとしました。これを指摘することで解決しました。ありがとう+1
speedynomads 2013

@Malachiasz:ViewPagerに関するこの質問を見てください。stackoverflow.com/questions/27937250/…
Hoa Vu

これはまさに私の問題でした、ありがとう。奇妙なことに、これは.show()を呼び出すときに横向きでのみ発生しました。メインフラグメントを置き換えるためにそれを使用するとうまくいきました。
cohenadair 2015

1
それはまさに私の問題でした、ありがとうございました!一部の遅いデバイスでのみ発生していたため、正確に何が起こっているのかを理解することが困難でした。
YawaraNes 2016年

1
この質問に何度も行った後、他の誰も私の問題を抱えていないように感じました。少し下にスクロールするだけで済みました。彼らがエラーコードをより具体的にして、これが事実であると言うことができればいいのですが。
KodyVanRy

67

解決策は使用することでした getChildFragmentManager()

の代わりに getFragmentManager()

フラグメントから呼び出すとき。アクティビティからメソッドを呼び出す場合は、を使用しますgetFragmentManager()

それで問題は解決します。


4
getSupportFragmentManager()代わりに@ surfer190を使用してください。
Amir Hossein Ghasemi 2016年

getChildFragmentManager()に変更され、これは機能します!!
Shyam 2017年

私の場合、ボトムシートのフラグメントでviewpagerを使用してフラグメントナビゲーションを使用していました。あなたの解決策は見事に機能しました!! Thanx broのトン。
Debasish Ghosh 2017

1
同じ問題があり、これで解決しました!getActivity()。getFragmentManager()の代わりにgetChildFragmentManager()。
Simon

アクティビティからメソッドを呼び出していますgetFragmentManager()が、非推奨になりました!
Alireza Noorali

29

私は(コードでUIを作成するときに)この問題があり、IDが設定されていないViewPagerFragments が表示された)ために問題が発生したため、単純に使用pager.setID(id)して機能しました。

このページは、それを理解するのに役立ちました。


1
私はviewPagerを使用したときに同じ問題がありました。同じエラーは、トランザクションを実行する前にviewPager.setCurrentItem(n)を使用して修正されました。多分それは誰かのために役立つでしょう。
カークハメット

私の場合も同様の方向でしたが、問題は.setIDに負の値を使用したことです。正の整数を使用して問題を解決しました。
Ignacio Hagopian 2016年

29

私が会った別のシナリオ。ネストされたフラグメントを使用する場合は、ページとフラグメントを含むフラグメント内のViewPagerを言います。

内部フラグメント(ViewPagerのページ)でフラグメントトランザクションを実行する場合、

FragmentManager fragmentManager = getActivity().getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

ここでは、getActivity()が重要です。...


そうです...私にとっては、これ以外のすべての実装は問題ありませんでした。私は次のようなコードに直接アクセスしようとしました:FragmentTransaction transaction = getSupportFragmentManager()。beginTransaction(); 次に、あなたが言ったように、getActivity()を個別に使用してfragmentmanagerを取得しました。それはかなり動作します
anand krish

18

私の場合、ページャーを含むDialogFragmentを表示しようとしていましたが、FragmentPagerAdapterがページャーにフラグメントを追加しようとしたときにこの例外がスローされました。Howettlの回答に基づいて、Pagerの親がFragmentActivityのsetContentView()で設定されたビューではなかったことが原因だと思います。

問題を解決するために私が行った唯一の変更は、通常のようにgetFragmentManager()を呼び出して取得したものではなく、getChildFragmentManager()を呼び出して取得したFragmentMagerを渡すFragmentPagerAdapterを作成することでした。

    public class PagerDialog extends DialogFragment{

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.pager_dialog, container, false);

        MyPagerAdapter pagerAdapter = new MyPagerAdapter(getChildFragmentManager());
        ViewPager pager = (ViewPager) rootView.findViewById(R.id.pager);
        pager.setAdapter(pagerAdapter);

        return rootView;
    }
}

getChildFragmentManager()はDialogFragmentからアクセスできません
Abdalrahman Shatou 2013

14

この例外は、渡されているレイアウトID FragmentTransaction.replace(int ID, fragment)が、インフレートされている他のレイアウトに存在する場合にも発生する可能性があります。レイアウトIDが一意であり、機能することを確認してください。


一意ではない場合、コンパイラは現在のレイアウトでIDが欠落しているかどうかを報告しません。したがって、実際の問題は、IDの一意性ではなく、現在のレイアウトでのIDの省略です。
Samuel

13

この問題に直面したときに私に役立つこのスレッドと同様の別のスレッドで読んだ回答は、レイアウトxmlに関係していました。

あなたのlogcatは「ID 0x7f080011のビューが見つかりません」と言っています。

を開きgen->package->R.java->id、idを探します0x7f080011

私はこの問題があった場合は、このIDはに属しFrameLayout、私の中activity_main.xmlのファイル。

FrameLayoutにIDがありませんでした(ステートメントがありませんでしたandroid:id = "blablabla")。

すべてのレイアウトのすべてのコンポーネント、特にlogcatで引用されているコンポーネントにIDがあることを確認してください。


1
いいね。LinuxOSを搭載したAndroid Studioの場合:/ home / bob / AndroidStudioWorkspace / HelloWorld / app / build / generated / source / r / release / android / support / v7 / appcompat。
portsample 2015年

11

からにアップグレードしたときに、このエラーが発生しcom.android.support:support-v4:21.0.0ましたcom.android.support:support-v4:22.1.1

私は私のレイアウトをこれから変更する必要がありました:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container_frame_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</FrameLayout> 

これに:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/container_frame_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </FrameLayout>

</FrameLayout> 

したがって、レイアウトには子ビューが必要です。私は彼らがこれを新しいライブラリで実施したと思います。


9

ネストされたフラグメント

解決済みのクラッシュのgetChildFragmentManager()代わりに使用することにより、getActivity().getSupportFragmentManager()

java.lang.IllegalArgumentException:IDのビューが見つかりません


しかし、アダプタの内部ではgetchildFragmentMangerの理由はわかりません
Sunil Chaudhary

8

これはすでに1つのシナリオで回答済みであることはわかっていますが、私の問題は少し異なり、他の誰かが私の立場にある場合に備えて共有したいと思いました。

私は内onCreate()でトランザクションを作成していましたが、この時点ではビューツリーが拡張されていないため、同じエラーが発生します。トランザクションコードを入れると、onResume()すべてが正常に実行されます。

したがって、ビューツリーがインフレートされた後にトランザクションコードが実行されることを確認してください。


3
うーん...私の場合、そのようなコードがonCreateにあるのかonResumeにあるのかで違いはありませんでした
IgorGanapolsky

私の場合も@IgorGanapolskyは、フラグメントのからのコールバックでそれを解決しましたonAttach。私の回答を
Alexander Malakhov

これはまさに私の問題でした。ビューステートを更新するための別のクラスの呼び出しで、まだ拡張されていないレイアウトでフラグメントトランザクションが実行されていました。onResume()で呼び出すと問題が修正されました。
AWT、

8

Recycler View内でViewpagerを使用すると、厄介なエラーが発生しました。エラーの下で、私は特別な状況で直面しました。(FragmentStatePagerAdapterを使用して)ViewpagerでRecyclerViewを持つフラグメントを開始しました。RecyclerViewでセルをクリックして別のフラグメントに切り替え、電話のハードウェアの[戻る]ボタンを使用して戻ってアプリがクラッシュするまで、うまく機能しました。

これの面白い点は、同じRecyclerViewに2つのViewpagerがあり、両方とも約5セル離れていたことです(他は画面に表示されず、ダウンしていました)。そのため、最初は最初のViewpagerにソリューションを適用し、他のものはそのままにしました(フラグメントを使用するViewpager)。

最初のビューページャーが表示可能だったときに、戻る操作がうまくいきました。今、私が下にスクロールして2番目のものにスクロールしてからフラグメントを変更して戻ってきたとき、それはクラッシュしました(最初のものと同じことが起こりました)。だから私は両方のページャーを変更しなければなりませんでした。

とにかく、以下を読んで実用的な解決策を見つけてください。以下のクラッシュエラー:

java.lang.IllegalArgumentException: No view found for id 0x7f0c0098 (com.kk:id/pagerDetailAndTips) for fragment ProductDetailsAndTipsFragment{189bcbce #0 id=0x7f0c0098}

デバッグに費やした時間。childFragmentManagerを渡していることを確認するなど、すべてのソリューションを適用する下部まで、この完全なスレッドの投稿をお読みください。

何もうまくいきませんでした。

最後に、FragmentStatePagerAdapterを使用する代わりに、PagerAdapterを拡張し、フラグメントを使用せずにViewpagerで使用しました。フラグメントが入れ子になっているバグがあると思います。とにかく、オプションがあります。読んだ ...

以下のリンクは非常に役に立ちました:

フラグメントのないページャー

リンクが停止する可能性があるため、実装したソリューションを以下に投稿します。

public class ScreenSlidePagerAdapter extends PagerAdapter {
private static final String TAG = "ScreenSlidePager";
ProductDetails productDetails;
ImageView imgProductImage;
ArrayList<Imagelist> imagelists;
Context mContext;

// Constructor
public ScreenSlidePagerAdapter(Context mContext,ProductDetails productDetails) {
    //super(fm);
    this.mContext = mContext;
    this.productDetails = productDetails;
}

// Here is where you inflate your View and instantiate each View and set their values
@Override
public Object instantiateItem(ViewGroup container, int position) {
    LayoutInflater inflater = LayoutInflater.from(mContext);
    ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.product_image_slide_cell,container,false);

    imgProductImage = (ImageView) layout.findViewById(R.id.imgSlidingProductImage);
    String url = null;
    if (imagelists != null) {
        url = imagelists.get(position).getImage();
    }

    // This is UniversalImageLoader Image downloader method to download and set Image onto Imageview
    ImageLoader.getInstance().displayImage(url, imgProductImage, Kk.options);

    // Finally add view to Viewgroup. Same as where we return our fragment in FragmentStatePagerAdapter
    container.addView(layout);
    return layout;
}

// Write as it is. I don't know much about it
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    container.removeView((View) object);
    /*super.destroyItem(container, position, object);*/
}

// Get the count
@Override
public int getCount() {
    int size = 0;

    if (productDetails != null) {
        imagelists =  productDetails.getImagelist();
        if (imagelists != null) {
            size = imagelists.size();
        }
    }
    Log.d(TAG,"Adapter Size = "+size);
    return size;
}

// Write as it is. I don't know much about it
@Override
public boolean isViewFromObject(View view, Object object) {

    return view == object;
}

}

これが役に立てば幸い!


はい、このソリューションは機能しましたが、ビューだけでなく、独自のライフサイクルと変数を使用した難しい構築が必要な場合はどうなりますか?再生ボタンとミュートボタンのあるvideoViewsとimageViewsで使用されます。私の場合は何も役に立ちませんか?
Nikita Axyonov 16

これが理由だと思います:stackoverflow.com/a/27966053/1377819
Hoang Nguyen Huu

7

私は同じ問題を抱えていましたが、私の向きは方向転換で起こっていました。他のソリューションはどれも機能しませんでした。そのためsetRetainInstance(true);、画面サイズに基づいて2つまたは1つのペインレイアウトを実行するときに、フラグメントから削除するのを忘れたことがわかりました。


ネストされたフラグメントにいる場合、setRetainInstance(true)をfalseにすると、エラーが修正されます。
ラルフガブ2014年

5

私の間違いは FragamentTransaction

t.replace(R.layout.mylayout);代わりにこれをやっていたt.replace(R.id.mylayout);

違いは、1つはレイアウトであり、もう1つは layout(id)


4

誰かが私と同じ愚かな間違いをした場合に備えて。どこかでアクティビティコンテンツを上書きしていないことを確認します(つまり、setContentViewへの追加の呼び出しを探します)。

私の場合、不注意なコピーと貼り付けが原因で、アクティビティーの状態を台無しにするDataBindingUtil.inflateの代わりに、フラグメントでDataBindingUtil.setContentViewを使用しました。


3

私はこれと同じ問題を抱えていました。すべての人がそれを見ることができるようにコードを投稿させてください。私がしたのと同じことをしないでください。

@Override
protected void onResume()
{
    super.onResume();

    fragManager = getSupportFragmentManager();

    Fragment answerPad=getDefaultAnswerPad();
    setAnswerPad(answerPad);
    setContentView(R.layout.abstract_test_view);
}
protected void setAnswerPad(AbstractAnswerFragment pad)
{
    fragManager.beginTransaction()
        .add(R.id.AnswerArea, pad, "AnswerArea")
        .commit();
    fragManager.executePendingTransactions();
}

前にフラグメントを設定していたことに注意してくださいsetContentView。おっと。


1
ありがとうございました!私は同じことをしていたので、自分のsetContentView中に自分を入れましたonBuildHeaders
Randy

3

このページは、フラグメントIllegalArgumentExceptionに関する提案を投稿する中心的な場所のようです。ここで、もう1つ試すことができます。これは最終的に私のために働いたものです:

横向きのレイアウトファイルが別にあることを忘れていました。ここにFrameLayoutコンテナを追加した後も、フラグメントは機能しました。


別の言い方をすれば、このページ(およびインターネット全体)で提案されている他のすべてを既に試し、何時間も髪を引っ張っている場合は、これらの迷惑な断片を捨てて、古き良き標準レイアウトに戻すことを検討してください。(これが、実際に問題を発見したときに私がやっていたことでした。)コンテナーの概念は引き続き使用できます。ただし、フラグメントで埋める代わりに、xml includeタグを使用して、フラグメントで使用するのと同じレイアウトで埋めることができます。あなたはメインレイアウトで次のようなことをすることができます:

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <include layout="@layout/former_fragment_layout" />

</FrameLayout>

ここformer_fragment_layoutで、フラグメントで使用しようとしたxmlレイアウトファイルの名前です。詳しくは、include使用したレイアウトの再利用をご覧ください。


これは良い提案ですが、フラグメントを動的に切り替える必要がある場合は機能しません。また、動作(コード)をフラグメントにカプセル化できるため、再利用性も低下します。
Alexander Malakhov

私は間違いなく同意します。フラグメントははるかに優れています。
Suragch 2015年

2

私の場合、リサイクラービューアイテムにSupportMapFragmentがありました(マップを非静止画像のように見えるようにする、オーバーヘッドの低い "liteMode"を使用していました)。私は正しいFragmentManagerを使用していて、すべてが正常に機能しているように見えました...小さなリストで。アイテムのリストが画面の高さを少し超えると、スクロール時にこの問題が発生し始めました。

結局のところ、別のフラグメント内にあるビュー内に動的SupportMapFragmentを挿入して、XMLで静的に宣言しようとしたときに発生していたいくつかの問題を回避したためです。このため、フラグメントプレースホルダーレイアウトは、ビューがウィンドウにアタッチされたとき、つまり画面に表示されたときにのみ、実際のフラグメントに置き換えることができます。そのため、SupportMapFragmentを初期化し、Fragment置換を実行し、getMapAsync()をonAttachedToWindowイベントで呼び出すためのコードを配置しました。

私が忘れていたのは、コードが2回実行されないようにすることでした。つまり、onAttachedToWindowイベントで、動的なSupportMapFragmentがまだnullであるかどうかを確認してから、その新しいインスタンスを作成してフラグメントの置換を試みます。アイテムがRecyclerViewの上部から外れると、ウィンドウからデタッチされ、スクロールして戻ると再アタッチされるため、このイベントは複数回発生します。

nullチェックを追加すると、RecyclerViewアイテムごとに1回だけ発生し、問題はなくなりました!TL; DR!


2

これは、別のフラグメント内のフラグメントから呼び出すときに発生します。

使用する :

getActivity().getSupportFragmentManager().beginTransaction();

1

でビューをフラグメントに置き換えようとしたときにこの問題が発生しましたonCreateView()。このような:

public class MyProjectListFrag extends Fragment {


    private MyProjectListFragment myProjectListFragment;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        FragmentManager mFragmentManager = getFragmentManager();
        myProjectListFragment = new MyProjectListFragment();
        mFragmentManager
                .beginTransaction()
                .replace(R.id.container_for_my_pro_list,
                        myProjectListFragment, "myProjectListFragment")
                .commit();
    }

それは私に言った

11-25 14:06:04.848: E/AndroidRuntime(26040): java.lang.IllegalArgumentException: No view found for id 0x7f05003f (com.example.myays:id/container_for_my_pro_list) for fragment MyProjectListFragment{41692f40 #2 id=0x7f05003f myProjectListFragment}

次に、replaceをに置くことでこの問題を修正しましたonActivityCreated()。このような:

public class MyProjectListFrag extends Fragment {

    private final static String TAG = "lch";

    private MyProjectListFragment myProjectListFragment;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        return inflater
                .inflate(R.layout.frag_my_project_list, container, false);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);

        FragmentManager mFragmentManager = getFragmentManager();
        myProjectListFragment = new MyProjectListFragment();
        mFragmentManager
                .beginTransaction()
                .replace(R.id.container_for_my_pro_list,
                        myProjectListFragment, "myProjectListFragment")
                .commit();

    }
  1. onCreateView()後でそれを置き換えることができるように、ビューを戻す必要があります
  2. 次のようなフラグメントリフトサイクルの次の関数で、このビューに対する任意の操作を配置できます onActivityCreated()

お役に立てれば!


1

私はこのバグを修正し、commitNow()置換を使用していcommit()ます。

mFragment.getChildFragmentManager()
  .beginTransaction()
  .replace(R.id.main_fragment_container,fragment)
  .commitNowAllowingStateLoss();

commitNow同期方法で、commit()この方法は、非同期方式です。


1

私の場合、同じレイアウト要素(フラグメントプレースホルダー)に異なるIDを使用していて、異なるビルドバリアントにそれらのIDをいくつか持っていると、この例外がスローされました。なんらかの理由で、フラグメントを初めて置き換えるときに完全に機能しますが、もう一度実行しようとすると、この例外が発生します。したがって、異なるビルドバリアントに複数のレイアウトがある場合は、同じIDを使用していることを確認してください。


0

フラグメント内のフラグメントをで置き換えようとしているfragmentManager、親フラグメントを拡張しいない場合、問題を引き起こす可能性のあるを。

ではBaseFragment.java OnCreateView

if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                    .replace(R.id.container, new DifferentFragment())
                    .commit();
        }

return super.onCreateView(inflater, container, savedInstanceState);

super.onCreateView(inflater, container, savedInstanceState); フラグメントの正しいレイアウトを膨らませることに置き換えます。

        return inflater.inflate(R.layout.base_fragment, container, false);

0

アクティビティの作成中にフラグメントトランザクションを実行していたときにも、同じ問題が発生しました。

中心的な問題はニックがすでに指摘したことです -ビューツリーはまだ膨らんでいません。しかし、彼のソリューションは機能しませんでした-onResume、onPostCreateなどの同じ例外。

解決策は、準備ができたときに信号を送るためにコンテナーフラグメントにコールバックを追加することです。

public class MyContainerFragment extends Fragment {
    public static interface Callbacks {
        void onMyContainerAttached();
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        Log.d(TAG, "--- onAttach");
        ((Callbacks) activity).onMyContainerAttached();
    }

    //... rest of code
}

そして活動中:

public class MainActivity extends Activity
        implements MyContainerFragment.Callbacks
{
    @Override
    public void onMyContainerAttached() {
        getFragmentManager()
                .beginTransaction()
                .replace(R.id.containerFrame, new MyFragment())
                .commit();
    }

    //...
}

0

私の場合、フラグメントクラスファイルを使用してリストビューアダプタークラスを宣言していました。パブリックアダプタクラスに別のファイルを使用したところ、エラーは発生しませんでした。




0

コンテナーレイアウトをアクティビティに追加する前にフラグメントを追加しようとしたため、同じ問題が発生しました。


0

BottomNavigationViewを使用していることが原因の場合もあります。ナビゲーションからインテントを開き、そのアクティビティでフラグメントを開いた場合、

transaction.replace(R.id.container,new YourFragment());

そうすると、アクティビティは、使用しているナビゲーション方法を見つけることができなくなります。

解決策アクティビティをフラグメントに変更し、アプリのaddOnBackStackでナビゲーションを処理します。Jetpack Navigationを実装した場合は、プロジェクトでフラグメントを使用してください。


0

私の場合。私が持っているActivityのserveralでは、Fragment私は再作成する必要があるいくつかの時間だFragmentsのときを

  • 言語は変わります
  • フラグメントレイアウトの一部は不要、一部は不要、またはコンテンツの変更で再作成が必要
  • その他の変更
  • すべてFragmentのs をクリアしてすべてをに設定しますnullが、フラグメントはすでにそれ自体を作成していますが、ホストアクティビティはBeanがnullに設定されているため、フラグメントビューを呼び出す前にnullを確認してください

    例えば

    Activity{
        fragment
        recreate{
           fragment = null then new instance
        }
    
    }
    
    Fragment{
        if((activity).fragment != null) {
           findViewById()
        }
    
    }
    弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
    Licensed under cc by-sa 3.0 with attribution required.