我有一个带有3个标签的标签布局。每个标签都需要显示API调用中的某些数据(我正在使用Retrofit)。
因此,当用户打开该活动时,我将拥有主要活动,我先获取第一个标签的数据,然后显示视图
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
if (Application.isConnected()) {
getTrips();
} else {
Toast.makeText(this , "No internet Connection" , Toast.LENGTH_LONG).show();
setContentView(R.layout.no_internet_connection);
}
}
因此,在API调用成功后,我将视图膨胀如下:>
public void inflatingView () { setContentView(R.layout.activity_mytrip); context = this; tvTitle = findViewById(R.id.tv_title); tabLayout = findViewById(R.id.tablayout); tvTitle.setText("Trips"); tabLayout.addTab(tabLayout.newTab().setText("My Trips")); tabLayout.addTab(tabLayout.newTab().setText("Unclosed Trips")); tabLayout.addTab(tabLayout.newTab().setText("UnApproved Trips")); viewPager = findViewById(R.id.viewpager); myTripAdapter = new MyTripAdapter(getSupportFragmentManager(),tabLayout.getTabCount()); viewPager.setAdapter(myTripAdapter); viewPager.setOffscreenPageLimit(3); tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { switch (tabLayout.getSelectedTabPosition()) { case 0 : Log.d("test" , "first tab"); break; case 1 : Log.d("test" , "Second tab"); getTab2Data(); break; case 2 : Log.d("test" , "Third tab"); break; } viewPager.setCurrentItem(tabLayout.getSelectedTabPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); }
因此,获取了第一个选项卡中第一个片段的数据,我的问题是片段2和片段3。我只想在用户滑动时调用API。正如您在上面看到的,我试图检测用户何时滑动到第二个选项卡,然后调用method来获取数据,但不幸的是它现在可以工作。
您对如何执行此操作有任何想法吗?
我有一个带3个标签的标签布局。每个标签都需要显示API调用中的一些数据(我正在使用Retrofit)。因此,当用户打开该活动时,我有一个主要活动,即获取......>