У меня есть действие, в котором используется табуляция с 3 вкладками. Когда действие запускается, оно инициализирует (onAttach, OnCreate, OnCreatView) для вкладок 1 и 2. Когда я выбираю вкладку 2, она инициализирует вкладку 3. Автоматически ли это делает tablayout по какой-то причине или есть способ сказать, что опередить себя.
Ниже приведено действие java код
package com.grgapps.checkingin;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.net.Uri;
import android.os.Bundle;
import static androidx.constraintlayout.widget.Constraints.TAG;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.UiSettings;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
public class CheckInNew extends AppCompatActivity implements
CheckInNewGeneral.OnFragmentInteractionListener,
CheckInNewFrequency.OnFragmentInteractionListener,
CheckInNewRecipients.OnFragmentInteractionListener,
CheckInNewCurrentLocation.OnFragmentInteractionListener,
CheckInNewDestination.OnFragmentInteractionListener {
private AdView mAdView;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.context = context;
setContentView(R.layout.activity_check_in_new);
Toolbar toolbar = findViewById(R.id.toolbar);
//setSupportActionBar(toolbar);
Log.i(TAG, "CheckInNew onCreate: ");
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
mAdView = findViewById(R.id.adViewCheckInNewCurrentLocation);
AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();
mAdView.loadAd(adRequest);
DrawerUtil.getDrawer(this,toolbar);
configureTabLayout();
Log.i(TAG, "CheckInNew onCreate: Completed OnCreate");
}
private void configureTabLayout() {
TabLayout tabLayout = findViewById(R.id.check_in_main_new_tab_layout);
Log.i(TAG, "CheckInNew configureTabLayout: ");
tabLayout.addTab(tabLayout.newTab().setText("General"));
tabLayout.addTab(tabLayout.newTab().setText("Frequency"));
tabLayout.addTab(tabLayout.newTab().setText("Recipients"));
tabLayout.addTab(tabLayout.newTab().setText("Current Location"));
tabLayout.addTab(tabLayout.newTab().setText("Destination"));
final ViewPager viewPager = findViewById(R.id.check_in_new_main_pager);
final PagerAdapter adapter = new CheckInNewMainPagerAdapter
(getSupportFragmentManager(),
tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new
TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new
TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
@Override
public void onFragmentInteraction(Uri uri) {
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
Log.i(TAG, "CheckInNew onCreateOptionsMenu: ");
getMenuInflater().inflate(R.menu.check_in_new, menu);
return true;
}
}
Ниже приведен адаптер пейджера для вкладок.
package com.grgapps.checkingin;
import android.util.Log;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import static androidx.constraintlayout.widget.Constraints.TAG;
public class CheckInMainPagerAdapter extends FragmentPagerAdapter {
int tabCount;
public CheckInMainPagerAdapter(FragmentManager fm, int numberOfTabs) {
super(fm);
Log.i(TAG, "CheckInMainPagerAdapter: ");
this.tabCount = numberOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
Log.i(TAG, "CheckInMainPagerAdapter Case 0 getItem: ");
return new CheckInRecentList();
case 1:
Log.i(TAG, "CheckInMainPagerAdapter Case 1 getItem: ");
return new CheckInApproveRequested();
case 2:
Log.i(TAG, "CheckInMainPagerAdapter Case 2 getItem: ");
return new CheckInSearch();
default:
return null;
}
}
@Override
public int getCount() {
return tabCount;
}
}