直播軟體開發,同一分類下僅狀態列切換有無特效兩個版本
直播軟體開發,同一分類下僅狀態列切換有無特效兩個版本實現的相關程式碼
1、首先是ViewPager無特效效果
這個是ViewPager定義時最初的切換樣式
部分佈局
<com.google.android.material.tabs.TabLayout android:id="@+id/record_tabs" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_centerHorizontal="true" app:tabGravity="center" app:tabMode="fixed" app:tabTextColor="@color/grey_7D7D7D" app:tabSelectedTextColor="@color/black" app:tabIndicatorColor="@color/black"/> </RelativeLayout> <androidx.viewpager.widget.ViewPager android:id="@+id/record_vp" android:layout_width="match_parent" android:layout_height="match_parent"/> public class RecordPagerAdapter extends FragmentPagerAdapter { List<Fragment> fragmentList; String[]titles = {"介面1","介面2"}; public RecordPagerAdapter(@NonNull FragmentManager fm, List<Fragment>fragmentList) { super(fm); this.fragmentList = fragmentList; } @NonNull @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } @Nullable @Override public CharSequence getPageTitle(int position) { return titles[position]; } } 建立兩個空白的Fragment 設定ViewPager載入頁面 private void initPager() { List<Fragment> fragmentList = new ArrayList<>(); OutcomeFragment outFrag = new OutcomeFragment(); IncomeFragment inFrag = new IncomeFragment(); fragmentList.add(outFrag); fragmentList.add(inFrag); // 建立介面卡 RecordPagerAdapter pagerAdapter = new RecordPagerAdapter(getSupportFragmentManager(), fragmentList); // 設定介面卡 viewPager.setAdapter(pagerAdapter); //將TabLayout和ViwePager進行關聯 tabLayout.setupWithViewPager(viewPager); }
2.自定義ViewPager切換特效效果
public class RotateDownPageTransformer implements ViewPager.PageTransformer { private static final float ROT_MAX = 20.0f; private float mRot; public void transformPage(View view, float position) { if (position < -1) { ViewHelper.setRotation(view, 0); } else if (position <= 1) { if (position < 0) { /** * mRot 旋轉的角度 * 轉動的中心(ViewHelper.setPivotX, ViewHelper.setPivotY) */ mRot = (ROT_MAX * position); ViewHelper.setPivotX(view, view.getMeasuredWidth() * 0.5f); ViewHelper.setPivotY(view, view.getMeasuredHeight()); ViewHelper.setRotation(view, mRot); } else { mRot = (ROT_MAX * position); ViewHelper.setPivotX(view, view.getMeasuredWidth() * 0.5f); ViewHelper.setPivotY(view, view.getMeasuredHeight()); ViewHelper.setRotation(view, mRot); } } else { ViewHelper.setRotation(view, 0); } } }
以上就是直播軟體開發,同一分類下僅狀態列切換有無特效兩個版本實現的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2862858/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 工作流從無狀態切換到有狀態的好處
- 直播軟體搭建,Android studio設計兩個介面間的切換Android
- Homestead 下切換 PHP 版本PHP
- Ubuntu下python版本切換UbuntuPython
- 同一個電腦安裝兩個jdk版本JDK
- nvm for windows切換node版本無效Windows
- 直播軟體搭建,修改狀態列、導航條顏色及文字顏色
- 直播app開發,flutter 狀態列 AppBar 設定透明和半透明APPFlutter
- win10中word怎麼切換改寫狀態_win10怎樣切換插入狀態和改寫狀態Win10
- Java執行緒狀態及切換Java執行緒
- Flutter 多個版本切換控制Flutter
- 直播平臺開發,直播各個分類單例設計展示單例
- Mac 下切換 PHP 版本問題MacPHP
- 3個有狀態應用程式的無伺服器開發策略 - Twain Taylor伺服器AI
- Homestead如何切換命令列中php的版本命令列PHP
- 直播平臺軟體開發,Extjs Grid自動換行JS
- 直播電商平臺開發,動態去除系統自帶標題欄、狀態列
- 直播軟體開發,工具類的自定義彈窗效果
- Mac環境下WingIDE切換python版本MacIDEPython
- 如何在cmd下切換python版本使用Python
- php陣列的分類有哪幾個PHP陣列
- [譯] 5 分鐘讓 Drawer 在狀態列下可見
- 【Python有坑系列】交換兩個陣列的切片,有坑Python陣列
- 直播軟體搭建,狀態列顏色跟隨裝置系統變化而變化
- 切換java版本Java
- 切換 PHP 版本PHP
- 遊戲特效有哪些製作的分類遊戲特效
- window環境下安裝和切換兩個python環境Python
- 直播平臺軟體開發,flutter Wrap 自動換行元件Flutter元件
- 切換系統中多個python版本Python
- 給 Flutter 介面切換來點特效Flutter特效
- nacos實現對minio的動態版本切換
- 直播軟體開發,通過js動態設定字型大小JS
- 在windows下切換node版本,很簡單!Windows
- 直播類app開發解決方案、直播app功能有哪些?-北京銳智互動軟體開發APP
- 系統設計架構:有狀態與無狀態架構
- python 類 預設方法有兩個下劃線Python
- Android使用(TabLayout+ViewPager+fragment)與(FragmentTabHost+ViewPager+Fragment)實現底部狀態列切換AndroidTabLayoutViewpagerFragment