Есть примеры кода реализации ViewPager внутри какого либо DialogFragment? Находил некоторые примеры, но каждый раз возникали разные ошибки которые не позволяли понять в чем все таки проблема, по сему прошу полный пример от и до содержащий по возможности xml
Ответ
Tab_1.class
public class Tab_1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab_1, container, false);
}
}
Tab_2.class
public class Tab_2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab_2, container, false);
}
}
Tab_3.class
public class Tab_3 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab_3, container, false);
}
}
tab_1.xml
tab_2.xml
tab_3.xml
MainActivity.class
Кнопка вызова кастомного диалога.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View v){
new FragmentsPopup().show(getSupportFragmentManager(), "");
}
}
activity_main.xml
PageAdapter.class
public class PageAdapter extends FragmentPagerAdapter {
private List
public PageAdapter(FragmentManager fm, List
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
FragmentsPopup.class
Ну и сам класс диалога, ради чего всё это.
public class FragmentsPopup extends DialogFragment {
PageAdapter pageAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_activity, container);
ViewPager viewPager = (ViewPager) view.findViewById(R.id.pager);
pageAdapter = new PageAdapter(getChildFragmentManager(), getFragments());
viewPager.setAdapter(pageAdapter);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); //уберем a_bar
return view;
}
private List getFragments(){
List list = new ArrayList();
list.add(new Tab_1());
list.add(new Tab_2());
list.add(new Tab_3());
return list;
}
}
dialog_activity.xml
Комментариев нет:
Отправить комментарий