TabLayout
とViewPager
を組み合わせて使用しており、タブのカスタム表示を設定しました。タブが選択されている場合と選択されていない場合(カスタムビューは、選択/非選択のタブによって変更されます)、すべてが期待どおりに機能しています。
問題は最初に起動され、onTabSelectedメソッドは呼び出されません。ここ
は私の活動です:Android-onTabSelectedは初めてcustomViewで呼び出されません
setupViewPager(viewPager);
tabLayout.setupWithViewPager(viewPager);
for (int i = 0; i < tabLayout.getTabCount(); i++) {
tabLayout.getTabAt(i).setCustomView(getViewAt(i));
}
tabLayout.addOnTabSelectedListener(this);
これはsetupViewPager
やその他の方法である:タブ
https://i.stack.imgur.com/Scm9P.png
を介して第1のタブをナビゲートするときに最後にここに
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);
}
は動作です起動、タブは選択されていない
https://i.stack.imgur.com/a6Xgd.png
誰か助けてもらえますか?
位置づけるチェック
getViewAt()
方法であります魅力、そしてもちろん2番目の@Piyush – Leonald@レオナルド大! – Piyush