Câu hỏi của tôi đã được trả lời nhiều lần khi đó là TabActivity
với tabWidgets
. Nhưng tôi không thể tìm thấy bất cứ điều gì về quan điểm mới TabLayout
tương đối mới.Cách phát hiện nhấp chuột trên tab đã chọn trong TabLayout
Nó khá đơn giản, giống như facebook, tôi muốn nhấn vào một tab đã chọn để danh sách của tôi cuộn lên đến khi bắt đầu. nhưng tôi không thể tìm ra nơi để đưa người nghe của mình.
Tôi đã thử trên TabLayout
chính nó, mTabLayout.getChildAt()
và trên TabLayout.getTabAt().getCustomView()
.
EDIT: Correction: Như CommonsWare mentionned trong những nhận xét câu trả lời của mình, tôi đã phải viết lại hành vi của "onTabSelected".
mTabLayout = (TabLayout) findViewById(R.id.tabs);
mTabLayout.setupWithViewPager(mViewPager);
for (int i = 0; i < mTabLayout.getTabCount(); i++) {
mTabLayout.getTabAt(i).setIcon(tabIcons[i]);
}
mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
if (tab.getPosition() == PAGE_FEED) {
((PagerNewsFeedFragment) mViewPagerAdapter.getRegisteredFragment(PAGE_FEED)).scrollToTop();
}
}
});
Cảm ơn!
yeah .. có lẽ đó là lý do tại sao không có stackoverflow về nó. Không làm việc cho tôi nghĩ, tôi không thể kích hoạt sự kiện. Tôi sẽ đăng mã của tôi –
Đó là do thứ tự các dòng mã của tôi. Tôi không biết tại sao nhưng nó không hoạt động nếu '' 'setupWithViewPager''' được gọi sau khi thiết lập người nghe –
@RenaudFavier: Một lớp con cụ thể của' OnTabSelectedListener' là 'ViewPagerOnTabSelectedListener'. Gọi 'setupWithViewPager()' có thể thay thế người nghe của riêng bạn. Bạn sẽ cần phải tìm ra cách tốt nhất để xử lý sự kiện bạn muốn và cũng có tích hợp 'ViewPager'. – CommonsWare