gpt4 book ai didi

Android - onTabSelected 第一次没有调用 customView

转载 作者:行者123 更新时间:2023-11-29 19:10:59 24 4
gpt4 key购买 nike

我将 TabLayoutViewPager 结合使用,并为我的选项卡设置了自定义 View 。选择和取消选择选项卡时,一切都按预期工作(自定义 View 根据选择/未选择的选项卡而改变)。
问题是在第一次启动时,永远不会调用 onTabSelected 方法。
这是我的 Activity :

setupViewPager(viewPager);    
tabLayout.setupWithViewPager(viewPager);

for (int i = 0; i < tabLayout.getTabCount(); i++) {
tabLayout.getTabAt(i).setCustomView(getViewAt(i));
}

tabLayout.addOnTabSelectedListener(this);

这是 setupViewPager 和其他方法:

private void setupViewPager(ViewPager viewPager) {
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getChildFragmentManager(), getContext(), startDate, endDate);
viewPager.setAdapter(adapter);
}

private View getViewAt(int i){
final Date currentDate = CalendarUtility.addDay(startDate, i);
View v = LayoutInflater.from(getContext()).inflate(R.layout.layout_custom_tab, null);
TextView day = (TextView) v.findViewById(R.id.day);
TextView num = (TextView) v.findViewById(R.id.num);
day.setText(CalendarUtility.getDayOfWeek(currentDate));
num.setText(CalendarUtility.getDayOfMonth(currentDate));
return v;
}

@Override
public void onTabSelected(TabLayout.Tab tab) {
Toast.makeText(getContext(), "Tab #"+tab.getPosition(), Toast.LENGTH_LONG).show();
TextView num = (TextView)tab.getCustomView().findViewById(R.id.num);
num.getBackground().setColorFilter(textDarkColor, PorterDuff.Mode.SRC_IN);
}

@Override
public void onTabUnselected(TabLayout.Tab tab) {
TextView num = (TextView)tab.getCustomView().findViewById(R.id.num);
num.getBackground().setColorFilter(pinkDarkColor, PorterDuff.Mode.SRC_IN);
}

最后是浏览选项卡时的行为
/image/Scm9P.png

第一次启动时的标签,没有选择标签
/image/a6Xgd.png

有人可以帮忙吗?

最佳答案

实现自定义 View 没有问题。

因为默认情况下第一个选项卡被选中

这就是为什么您需要将代码放在 onTabReselectedonTabSelected 中,这两者都会在选择任何选项卡时执行所需的操作。

onTabReselected 在已选择的选项卡被选中时调用。

所以在第一次启动时 onTabReselected 将完成你的工作。

关于Android - onTabSelected 第一次没有调用 customView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45326669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com