package com.novelbook.android.Fragments; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.BottomSheetDialog; import android.support.design.widget.FloatingActionButton; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.View; import android.widget.Button; import com.novelbook.android.Activity_createShudan; import com.novelbook.android.Activity_shudan_my; import com.novelbook.android.R; import com.flyco.tablayout.SlidingTabLayout; import com.umeng.analytics.MobclickAgent; import java.util.ArrayList; import butterknife.BindView; public class Fragment_shudan extends BasicFragment { public static final String TAG=Fragment_shudan.class.getSimpleName(); @BindView(R.id.fab) FloatingActionButton fab; private BottomSheetDialog bottomSheetDialog; public Fragment_shudan() { // Required empty public constructor } public static Fragment_shudan newInstance(String param1, String param2) { Fragment_shudan fragment = new Fragment_shudan(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } @Override protected int getLayoutRes() { return R.layout.fragment_shudan; } protected void processArguments(){ if (getArguments() != null) { Bundle bundle = getArguments() ; } } @Override protected void fillData() { } @Override public void initData() { } @Override public void initViews(){ initTabs(); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showShelfMoreSheet(); } }); } //---------tabs------------- @BindView(R.id.viewpager) ViewPager mViewpager; @BindView(R.id.tab_layout2) SlidingTabLayout tabLayout; private ArrayList mFragments; ArrayList mList; String[] mTitle; void initTabs() { if(mFragments ==null || mFragments.size() ==0){ mTitle = new String[]{"最新发布", "本周最热", "最多收藏","小编推荐"}; mFragments = new ArrayList<>(); mFragments.add(new Fragment_shudan_list()); mFragments.add(new Fragment_shudan_list()); mFragments.add(new Fragment_shudan_list()); mFragments.add(new Fragment_shudan_list()); Log.d(TAG,"initial fragments in tabs "); } Log.d(TAG,"set viewPager adapter "); // FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(activity.getSupportFragmentManager()) { 第一次进入没问题,再次进入ViewPager的fragment时里面内容就没了,数据丢失 https://blog.csdn.net/allan_bst/article/details/64920076 FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getChildFragmentManager()) { @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } //ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text @Override public CharSequence getPageTitle(int position) { return mTitle[position]; } }; mViewpager.setAdapter(mAdapter); tabLayout.setViewPager(mViewpager); // tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments); mViewpager.setCurrentItem(0); } //---------------书单浮动工具栏 /* @OnClick({R.id.btnCreateShudan,R.id.btnMyShudan}) void shudanSubmit(View view) { if(view.getId() == R.id.btnCreateShudan) { //to show newshudan }else if(view.getId() == R.id.btnMyShudan) { //to show myshudan } } */ public void showShelfMoreSheet() { bottomSheetDialog = new BottomSheetDialog(this.activity ); bottomSheetDialog.setContentView(R.layout.fragment_shudan_bottom_sheet); //给布局设置透明背景色 bottomSheetDialog.getDelegate().findViewById(android.support.design.R.id.design_bottom_sheet) .setBackgroundColor(getResources().getColor(android.R.color.transparent)); Button btnCreateShudan =(Button) bottomSheetDialog.findViewById(R.id.btnCreateShudan); Button btnMyButton =(Button) bottomSheetDialog.findViewById(R.id.btnMyShudan); Button btnCancel =(Button) bottomSheetDialog.findViewById(R.id.btnCancel); btnCreateShudan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(activity, Activity_createShudan.class); intent.putExtra("SHUDANID",0); startActivity(intent); } }); ; btnMyButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(activity, Activity_shudan_my.class); startActivity(intent); } }); ; btnCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { bottomSheetDialog.dismiss(); } }); ; bottomSheetDialog.show(); } @Override public void onResume() { super.onResume(); if( bottomSheetDialog !=null ){ bottomSheetDialog.dismiss(); } MobclickAgent.onPageStart(TAG); } @Override public void onPause(){ super.onPause(); MobclickAgent.onPageEnd(TAG); } }