2022-06-06
2022-06-16 本文已影响0人
霁逸lei
Viewpager + TabLayout
//处理tabLayout切换的水波纹动画
tabLayout.setTabRippleColorResource(R.color.colorTransparent);
//使用getChildFragmentManager 防止白屏
viewPager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager(),BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
@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 navBarInfoList.get(position).getText();
}
});
//关联Tablayout和Viewpager
tabLayout.setupWithViewPager(viewPager,false);
//添加自定义Tab
for (int i = 0; i < navBarInfoList.size(); i++) {
TabLayout.Tab tab = tabLayout.getTabAt(i);
tab.setCustomView(customView);
}
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
View customView = tab.getCustomView();
//更新选中样式
int position = tab.getPosition();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
View customView = tab.getCustomView();
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
tabLayout.selectTab(tabLayout.getTabAt(curNavIndex));
ViewPager 装载fragment 页面显示空白
在Fragment中嵌套ViewPager,然后ViewPager中呈现Fragment的时候, 页面一直空白,可能的原因就是在初始化Adapter的时候使用了getFragmentManager,getFragmentManager到的是activity对所包含fragment的Manager,而如果是fragment嵌套fragment,那么就需要利用getChildFragmentManager()了。
————————————————
版权声明:本文为CSDN博主「android小鑫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014277878/article/details/107697498
/**
* 计算字符长度
*
* @param value
* @return
*/
public int computeCharLength(String value) {
int valueLength = 0;
String chinese = "[\u0391-\uFFE5]";
// 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1
for (int i = 0; i < value.length(); i++) {
String temp = value.substring(i, i + 1);
// 判断是否为中文字符
valueLength += temp.matches(chinese) ? 2 : 1;
}
return valueLength;
}