activity 启动时获取 TabLayout 第一个选项卡的初始 select 事件
Get initial select event for the first tab of TabLayout when activity started
在 onCreate
中,我使用 addOnTabSelectedListener
添加了一个侦听器。 onTabSelected
好像是在初始索引为0的时候没有被调用,怎么才能得到这个"selected 0"事件呢?
以下是事件的时间表。粗体部分是问题所在。我需要在选项卡 0 被选中时收到通知。
- Activity是第一次创建
- Tab 0 被自动选中,但我没有得到 onTabSelected。
- 我点击选项卡 1,我得到 onTabSelected with 1.
- 我点击选项卡 0,我得到 onTabSelected 和 0。
- 我点击选项卡 1,我得到 onTabSelected with 1.
- 我旋转设备。
- Tab 1 被自动选中,我用 1 得到 onTabSelected。
- 我点击选项卡 0,我得到 onTabSelected 和 0。
- 我旋转设备。
- Tab 0 被自动选中,但我没有得到 onTabSelected。
代码
myAdapter = MyTabAdapter(supportFragmentManager);
viewPager.adapter = myAdapter;
tabLayout.setupWithViewPager(viewPager);
tabLayout.addOnTabSelectedListener(object: TabLayout.OnTabSelectedListener {
布局
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
app:tabMode="fixed"
app:tabGravity="fill"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp">
</android.support.v4.view.ViewPager>
手动调用
TabLayout.OnTabSelectedListener onTabSelectedListener = new TabLayout.OnTabSelectedListener() {
@Override public void onTabSelected(TabLayout.Tab tab) {
}
@Override public void onTabUnselected(TabLayout.Tab tab) {
}
@Override public void onTabReselected(TabLayout.Tab tab) {
}
};
onTabSelectedListener.onTabSelected(tabLayout.getTabAt(tabLayout.getSelectedTabPosition()));
tabLayout.addOnTabSelectedListener(onTabSelectedListener);
在 onCreate
中,我使用 addOnTabSelectedListener
添加了一个侦听器。 onTabSelected
好像是在初始索引为0的时候没有被调用,怎么才能得到这个"selected 0"事件呢?
以下是事件的时间表。粗体部分是问题所在。我需要在选项卡 0 被选中时收到通知。
- Activity是第一次创建
- Tab 0 被自动选中,但我没有得到 onTabSelected。
- 我点击选项卡 1,我得到 onTabSelected with 1.
- 我点击选项卡 0,我得到 onTabSelected 和 0。
- 我点击选项卡 1,我得到 onTabSelected with 1.
- 我旋转设备。
- Tab 1 被自动选中,我用 1 得到 onTabSelected。
- 我点击选项卡 0,我得到 onTabSelected 和 0。
- 我旋转设备。
- Tab 0 被自动选中,但我没有得到 onTabSelected。
代码
myAdapter = MyTabAdapter(supportFragmentManager);
viewPager.adapter = myAdapter;
tabLayout.setupWithViewPager(viewPager);
tabLayout.addOnTabSelectedListener(object: TabLayout.OnTabSelectedListener {
布局
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
app:tabMode="fixed"
app:tabGravity="fill"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp">
</android.support.v4.view.ViewPager>
手动调用
TabLayout.OnTabSelectedListener onTabSelectedListener = new TabLayout.OnTabSelectedListener() {
@Override public void onTabSelected(TabLayout.Tab tab) {
}
@Override public void onTabUnselected(TabLayout.Tab tab) {
}
@Override public void onTabReselected(TabLayout.Tab tab) {
}
};
onTabSelectedListener.onTabSelected(tabLayout.getTabAt(tabLayout.getSelectedTabPosition()));
tabLayout.addOnTabSelectedListener(onTabSelectedListener);