簡體   English   中英

找不到片段ID的視圖

[英]No view found for id for fragment

我需要幫助。 我在Crashlytics上崩潰了:

Fatal Exception: java.lang.IllegalArgumentException: No view found for id 0x7f0f016c (com.my.my:id/fragment_root_layout) for fragment a{2e8d61e1 #4 id=0x7f0f016c fragment_tag}

我用片段變成片段。 在父片段的OnCreate方法中,我使用幫助FragmentManager添加子片段。 我有個問題,問題是在OnCreate方法中添加了子片段,需要在OnCreateView中執行此操作。 但是我不確定。 問題是我無法重現此崩潰,但我在Crashlytic上遇到了崩潰。 父片段layount上的所有視圖都有一個id。 僅當我在OnCreateView方法中膨脹不正確的布局時,我才能重現此崩潰,但是在實時構建中不會發生這種情況。 請給我一個建議。

編輯:添加子片段的代碼

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LogUtils.verbose(TAG, "displayOverlayFragment: attempt to add a fragment using FragmentTransaction");
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        OverlayFragment overlayFragment = new OverlayFragment();
        fragmentTransaction.add(R.id.fragment_root_layout, overlayFragment, FRAGMENT_TAG);
        fragmentTransaction.commit();
    }

onCreateView的代碼:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(getLayoutResId(), container, false);
        mRecyclerView = initRecyclerView(view);

        mProgressBar = view.findViewById(R.id.progressBar);
        mProgressBarLabel = (TextView) view.findViewById(R.id.progressBarLabel);
        }

        return view;
}
@Override
    protected int getLayoutResId() {
        return R.layout.fragment_favorites;
    }

也許您必須在發布版本中的proguard-rules.pro中聲明一些內容? 您是否僅在發布版本中檢查過它? 我認為您的調試版本會忽略proguard,並且工作正常,但是如果您檢查發布版本,則將有機會重現崩潰。 也許應該在proguard中聲明一些Fragment子組件。

對於android中的片段,您需要在onStart()方法中對其進行編碼。 並使用onCreateView()返回要針對該特定片段使用的布局

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM