直播软件开发,同一分类下仅状态栏切换有无特效两个版本
直播软件开发,同一分类下仅状态栏切换有无特效两个版本实现的相关代码
1、首先是ViewPager无特效效果
这个是ViewPager定义时最初的切换样式
部分布局
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"/>android:id="@+id/record_vp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
public class RecordPagerAdapter extends FragmentPagerAdapter {
ListfragmentList;
String[]titles = {"界面1","界面2"};
public RecordPagerAdapter(@NonNull FragmentManager fm, ListfragmentList) {
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() {
ListfragmentList = 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);
}
}
}
以上就是直播软件开发,同一分类下仅状态栏切换有无特效两个版本实现的相关代码, 更多内容欢迎关注之后的文章