Je fais ma première application dans laquelle, j'utilise des fragments pour les onglets. dans ce que je veux réutiliser un fragment dans d'autres onglets aussi je veux construire Dynamiquement interface utilisateur pour différents onglets sans gonfler XML The Screen shot is hereréutiliser le fragment dans d'autres onglets aussi je veux construire l'interface dynamique pour différents onglets sans gonfler XML
code dans l'activité se présente comme suit
public class Schedules extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_schedules);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new FragmentOne(), "SCIENCE");
adapter.addFragment(new FragmentOne(), "SOCIAL");
adapter.addFragment(new FragmentOne(), "ENGLISH");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
private final List<String> mFragmentDays = new ArrayList<>();
private final List<String> mFragmentTimings = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
et le code à l'intérieur du fragment va ici
public class FragmentOne extends Fragment{
LinearLayout lLayout;
TextView tView;
public FragmentOne() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_one, container, false);
}
}
merci pour la réponse, mettra en œuvre et voir –
J'ai essayé de mettre en œuvre, mais n'a pas matérialisé d'où, j'ai décidé de construire par programme l'interface utilisateur à l'intérieur du fragment, si quelqu'un a un lien s'il vous plaît me donner t Le lien, qui serait extrêmement utile –
@Naveen, essayez de comprendre comment fonctionne la méthode d'usine, il vous aider à instancier l'objet avec les données que vous voulez montrer afin que vous puissiez prendre la décision dans le code sur la modification de l'interface utilisateur. Vous pouvez utiliser LayoutInflater plusieurs fois pour gonfler la mise en page dans votre code –