仿網易雲音樂的滑動效果
阿新 • • 發佈:2019-02-05
附上demo工程下載連結:
其中:
<span style="font-family:SimHei;font-size:18px;">android.support.v7.app.ActionBarDrawerToggle:選單 android.support.v7.widget.Toolbar:原來actionbar的位置 android.support.v4.widget.DrawerLayout:側滑欄 在main_layout中: <include layout="@layout/custom_toolbar" /> :可自定義佈局 <include layout="@layout/custom_drawerlayout" />側滑欄(前面是介面的主佈局,後面是側滑的佈局)</span>
1.toggle的使用
<span style="font-family:SimHei;font-size:18px;">setSupportActionBar(toolbar); getSupportActionBar().setHomeButtonEnabled(true); //設定返回鍵可用 getSupportActionBar().setDisplayHomeAsUpEnabled(true); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.open, R.string.close) { @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); } }; mDrawerToggle.syncState(); mDrawerLayout.setDrawerListener(mDrawerToggle);</span>
2.在mainactivity中,viewpager+fragment,viewpager滑動的同時更新toolbar的顯示
<span style="font-family:SimHei;font-size:18px;">mainViewPager = (ViewPager) findViewById(R.id.mainPager); adapter = new MainFragmentAdapter(this.getSupportFragmentManager()); mainViewPager.setAdapter(adapter); mainViewPager.setCurrentItem(0);</span>
在fragment中在使用viewpager+fragment+TabPageIndicator(可以指示顯示的是那一頁)
a.TabIndicator的使用網上例子很多,就不再講了b.使用getChildFragmentManager,而不用getActivity().getSupportFragmentManager()
可以保持Fragment中資料不丟失,Fragment巢狀Fragment時要注意
c.初始化放在onActivityCreated,不放在onResume中,這裡不會重複調
setCurrentItem(0);
<span style="font-family:SimHei;font-size:18px;">mainViewPager1 = (ViewPager) getActivity().findViewById(R.id.mainFragment_pager1);
mainViewPager1.setCurrentItem(0);
adapter = new MainFragmentAdapter_1(getChildFragmentManager());
mainViewPager1.setAdapter(adapter);
mIndicator1 = (TabPageIndicator) getActivity().findViewById(R.id.id_indicator1);
mIndicator1.setViewPager(mainViewPager1,0);
mIndicator1.setOnPageChangeListener(new MyOnPageChangeListen());</span>