0

我有3個片段,第一個mainFragment,tab1FragmentDetaitab1Fragment
我想致電Detaitab1Fragment在我的tab1Fragment沒有找到id viewpager片段android

這是代碼時,我打電話給我的Detaitab1Fragment在tab1Fragment

BlankFragment fragment = new BlankFragment(); 
FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
transaction.replace(R.id.frame, fragment); 
transaction.commit(); 

和驗證碼我SectionPageAdapter上mainFragment

private void setupViewPager(ViewPager viewPager){ 
    NotifikasiFragment.SectionPageAdapter adapter = new NotifikasiFragment.SectionPageAdapter(getChildFragmentManager()); 
    adapter.addFragment(new TabKelasNotifikasiFragment(),"Kelas"); 
    adapter.addFragment(new TabSekolahNotifikasiFragment(),"Sekolah"); 
    viewPager.setAdapter(adapter); 
} 
public class SectionPageAdapter extends FragmentStatePagerAdapter { 

    private final List<Fragment> mfragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 



    public void addFragment(Fragment fragment, String title) { 
     mfragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    public SectionPageAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return mfragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mfragmentList.size(); 
    } 

} 

// TODO: Rename method, update argument and hook method into UI event 
public void onButtonPressed(Uri uri) { 
    if (mListener != null) { 
     mListener.onFragmentInteraction(uri); 
    } 
} 

,這是代碼時,我打電話viewPager上mainFragment

SectionPageAdapter sectionPageAdapter = new SectionPageAdapter(getChildFragmentManager()); 
    viewPager = (ViewPager) rootView.findViewById(R.id.containerNotifikasi); 
    setupViewPager(viewPager); 

    tabLayout = (TabLayout) rootView.findViewById(R.id.tabsNotifikasi); 
    tabLayout.setupWithViewPager(viewPager); 

下面的代碼是我的mainFragment.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.fania.suara_project.fragment.notifikasi.NotifikasiFragment"> 

<!-- TODO: Update blank fragment layout --> 
<TextView 
    android:id="@+id/textview2" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:gravity="center" 
    android:textColor="#000000" 
    android:text="NOTIFIKASI" 
    android:textSize="20dp" 
    android:layout_below="@+id/text_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true"></TextView> 

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_below="@+id/textview2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="8dp" 
    android:theme="@style/AppTheme.AppBarOverlay"> 


    <android.support.design.widget.TabLayout 
     android:id="@+id/tabsNotifikasi" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</android.support.design.widget.AppBarLayout> 

<android.support.v4.view.ViewPager 
    android:id="@+id/containerNotifikasi" 
    android:layout_below="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginBottom="60dp" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
    </RelativeLayout> 

和代碼tab1Fragment.xml這樣的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.fania.suara_project.fragment.notifikasi.TabKelasNotifikasiFragment"> 

<android.support.v7.widget.RecyclerView 
    android:background="@color/kuning" 
    android:id="@+id/recycleViewKelasNotifikasi" 
    android:scrollbars="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

</android.support.v7.widget.RecyclerView> 

我的FrameLayout是content_drawable.xml

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="com.example.fania.suara_project.activity.DrawableActivity" 
tools:showIn="@layout/app_bar_drawable"> 

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

    </RelativeLayout> 

和我打電話content_drawable上Drawableactivity.class

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

R.id.drawable_layout是包括content_drawable.xml

,但我發現錯誤這樣

java.lang.IllegalArgumentException: No view found for id 0x7f0e0099 (com.example.fania.suara_project:id/frame) for fragment BlankFragment{9df0d4d #0 id=0x7f0e0099} 

任何人都可以幫我嗎? 謝謝

+1

什麼是您的FrameLayout的ID在XML? –

+0

@VishalVaishnav我已經使用.xml文件編輯了我的問題 –

+0

其中是xml中的幀...這將是framelayout? –

回答

1

據我所知,你的碎片是在同一個活動,對不對?嘗試撥打電話getActivity().getFragmentManager()(或getActivity().getSupportFragmentManager()),而不是getChildFragmentManager()。 你的id =「frame」的容器是否在你的activity的xml中?

+0

是的,這是正確的... 但是當我調用getActivity()。getFragmentManager()(或getActivity()。getSupportFragmentManager()?? –

+0

wahh工作正常.. 謝謝你:) 我真的很高興 –

+0

你可以在任何片段中做到這一點。這個調用只是在添加了這個片段的活動中引用了FragmentManager。 – Hetfieldan24

相關問題