使用Android

时间:2016-09-17 13:06:18

标签: android android-actionbar fragment toolbar

这是我的清单

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

这是我的MainActivity.java

的一部分
public class MainActivity extends AppCompatActivity {

FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
Fragment fragment,recepie_fragment,products_fragment,swadeshi_fragment,previous;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   // this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_yash);
    //setSupportActionBar(toolbar);
    //setSupportActionBar(null);
  //  final View ab=(View)findViewById(R.id.appbarmain);

    fragmentManager = getSupportFragmentManager();
    fragmentTransaction=fragmentManager.beginTransaction();

    recepie_fragment=new Recepie_Fragment();

    products_fragment=new Products_Fragment();
    swadeshi_fragment=new Swadeshi_Fragment();
    fragment=recepie_fragment;//new Fragment();
    fragmentTransaction.replace(R.id.bglayout,fragment);
    fragmentTransaction.commit();
    previous=fragment;
    BottomBar bb=BottomBar.attach(this,savedInstanceState);
    bb.setActiveTabColor("RED");

    bb.setItemsFromMenu(R.menu.bottom_buttons, new OnMenuTabSelectedListener() {
        @Override
        public void onMenuItemSelected(int menuItemId) {
            fragmentTransaction=fragmentManager.beginTransaction();

            switch(menuItemId)
            {
                case R.id.button1:
                    previous=fragment;
                   // ab.setAlpha(0);
                    fragment=recepie_fragment;//new Recepie_Fragment();
                   // fragment.setRetainInstance(true);
                    break;
                case R.id.button2:
                    //getSupportActionBar().show();
                    previous=fragment;
                    fragment=products_fragment;//new Products_Fragment();
                    //fragment.setRetainInstance(true);

                    break;
                case R.id.button3:
                    previous=fragment;
                    //getSupportActionBar().show();
                    fragment=swadeshi_fragment;//new Swadeshi_Fragment();
                    //fragment.setRetainInstance(true);

                    break;
            }
            fragmentTransaction.replace(R.id.bglayout,fragment);

            fragmentTransaction.commit();
        }
    });
}

这是我的RecepieFragment.java

public class Recepie_Fragment extends Fragment {
    View rootView;
    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;

    int logo_ids[]={R.drawable.main_course,R.drawable.cakes,R.drawable.specials};
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }
    void setupTabIcons()
    {

        tabLayout.getTabAt(0).setIcon(logo_ids[0]);
        tabLayout.getTabAt(1).setIcon(logo_ids[1]);
        tabLayout.getTabAt(2).setIcon(R.drawable.extra);
       // tabLayout.getTabAt(1).setCustomView();

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

        //getActivity().getApplication().setTheme(R.style.AppTheme_NoActionBar);
        rootView=inflater.inflate(R.layout.recepie_viewpager, container, false);
        //getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        toolbar=(Toolbar)rootView.findViewById(R.id.toolbar_yash);
       // ((AppCompatActivity) getActivity()).findViewById(R.id.toolbar_yash).animate().translationY(-(R.id.toolbar_yash).getBottom()).setInterpolator(new AccelerateInterpolator()).start();

        viewPager = (ViewPager)rootView.findViewById(R.id.viewpager);
        setupViewPager(viewPager);
        setRetainInstance(true);
        viewPager.setOffscreenPageLimit(3);
        tabLayout = (TabLayout)rootView. findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
        setupTabIcons();
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                //actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            private int previousState, currentState;

            @Override
            public void onPageScrollStateChanged(int state) {

                int currentPage = viewPager.getCurrentItem();       //ViewPager Type
                if (currentPage == 2 || currentPage == 0) {
                    previousState = currentState;
                    currentState = state;
                    if (previousState == 1 && currentState == 0) {

                        viewPager.setCurrentItem(currentPage == 0 ? 2 : 0);
                    }
                }
            }
        });

        return rootView;
    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());//(getActivity().getSupportFragmentManager());
        adapter.addFrag(new Main_Course(), "");
        adapter.addFrag(new Cakes(), "");
        adapter.addFrag(new Specials(), "");
        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

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

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

        public void addFrag(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

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

这是我正在使用的xml文件:                

tools:context=".activity.activity.MainActivity">

<android.support.design.widget.AppBarLayout

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/appbarmain"
    android:theme="@style/AppTheme.NoActionBar">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_yash"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.NoActionBar" />

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

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

   <android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_dialog_email" />

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

当我试图在recepies片段中隐藏工具栏/操作栏时,会创建下面的可视化类型。我想要的是每当我进入产品或swadeshi片段时我都会得到这个动作栏但是当我接受片段时我的动作栏隐藏并且屏幕由我的3个元素的viewpager组成,如蛋糕所示,而是创建了一个空白。

enter image description here

0 个答案:

没有答案