android tablayout viewpager fragment,android - How to replace fragment to another fragment in TabLay...

I want to replace fragment to another fragment which contain by TabLayout Viewpager. like this:

Activity -> A Fragment -> B Fragment(TabLayout ViewPager) -> C Fragment(Tab's Fragment) -> D Fragment

I task is switch Fragment C to Fragment D.

Note:- TabLayout ViewPager also contain 3 tab Fragment control by FragmentPagerAdapter.

Tablayout fragment's layout:

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical" >

android:id="@+id/tablayout_postpaid_service"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/colorPrimary"

app:tabGravity="fill"

app:tabIndicatorColor="@color/white"

app:tabMode="scrollable"

app:tabSelectedTextColor="@color/white"

app:tabTextColor="@color/tab_fade_text_color" >

android:id="@+id/viewpager_postpaid_service"

android:layout_width="match_parent"

android:layout_height="match_parent" >

Fragment B class:

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

view = inflater.inflate(R.layout.fragment_select_postpaid_service, container, false);

tablayout = (TabLayout) view.findViewById(R.id.tablayout_postpaid_service);

viewpager = (ViewPager) view.findViewById(R.id.viewpager_postpaid_service);

viewpager.setAdapter(new TabPagerAdapter(getChildFragmentManager(), TabConstants.POSTPAID_SERVICE_TYPE_TABS_FLAG, TabConstants.POSTPAID_SERVICE_TYPE_TABS));

tablayout.post(new Runnable() {

@Override

public void run() {

tablayout.setupWithViewPager(viewpager);

setupTabIcons();

}

});

return view;

}

Fragment C class:

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

view = inflater.inflate(R.layout.fragment_select_operator, container,

false);

setGridview();

return view;

}

private void setGridview() {

operatorName = new ArrayList();

operatorCode = new ArrayList();

recyclerview = (RecyclerView) view

.findViewById(R.id.select_operator_recycler_view);

recyclerview.setHasFixedSize(true);

GridLayoutManager layoutManager = new GridLayoutManager(getActivity(),

Constants.NO_OF_OPERATOR_GRID);

recyclerview.setLayoutManager(layoutManager);

OperatorGridAdapter adapter = new OperatorGridAdapter(getActivity(),

HomeConstants.OPERATOR_LIST_ICON);

recyclerview.setAdapter(adapter);

recyclerview.addOnItemTouchListener(new RecyclerItemClickListener(

getActivity(),

new RecyclerItemClickListener.OnItemClickListener() {

@Override

public void onItemClick(View view, int position) {

navigateFragment(position);

}

}));

}

private void navigateFragment(int position) {

Fragment fragment = new DFragment();

// FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();

FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();

fragmentTransaction.replace(R.id.container_body, fragment);

//fragmentTransaction.addToBackStack(null);

fragmentTransaction.commit();

((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(

getResources().getString(R.string.app_name));

Log.d(Constants.ACTIVITY_TAG, "********************");

}

I getting an error

java.lang.IllegalArgumentException: No view found for id 0x7f0a006e (com.recharge:id/container_body) for fragment DFragment{4327cfd0 #2 id=0x7f0a006e}

at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)

at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)

at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)

at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)

at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)

I've tried many tick and solution but not hit for me .

Please help me short out this problem.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值