В основном я просто хочу иметь пейджер для просмотра в диалоге. Вот и все, но почему-то диалог пустой?
Вот мой код диалога:
final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.voicedialog);
dialog.setCanceledOnTouchOutside(false);
MyPageAdapter adapter = new MyPageAdapter();
ViewPager pager = (ViewPager) dialog.findViewById(R.id.viewpager);
pager.setOffscreenPageLimit(3);
pager.setAdapter(adapter);
dialog.show();
А вот диалоговое окно макета,voicedialog
, просто пустой вид пейджера:
<android.support.v4.view.ViewPager
android_id="@+id/viewpager"
android_layout_width="match_parent"
android_layout_height="match_parent"
/>
Вот адаптер:
public class MyPageAdapter extends PagerAdapter {
public Object instantiateItem(ViewGroup collection, int position) {
int resId = 0;
switch (position) {
case 0:
resId = R.id.voice1;
break;
case 1:
resId = R.id.voice2;
break;
case 2:
resId = R.id.voice3;
break;
}
return collection.findViewById(resId);
}
@Override
public int getCount() {
return 3;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
}
ТАК ПРОСТО, ПРАВДА? Однако при запуске этого кода я получаю пустое диалоговое окно:
Вместо этого он должен показать мои три макета (voice1, voice2, voice3), которые я могу прокрутить! Эти макеты просто имеют textview, но он не отображается.
Пожалуйста, дайте мне знать, как я могу это сделать. Это расстраивает-я потратил почти 6 часов, пытаясь решить эту проблему 🙂
Во-первых, внутри вашего PagerAapter получить контекст, список и LayoutInflator через конструктор, как это
Затем верните размер списка в getItemCount метод
Затем
Выполните следующие действия, чтобы открыть viewPager в диалоговом окне
1-On нажмите кнопку, Откройте фрагмент, который расширяет DialogFragment, объявить и инициализировать viewpager в этом DialogFragment
2-Далее создайте адаптер, который расширяет FragmentPagerAdapter, который из android.поддержка.v13.приложение.FragmentPagerAdapter, для этого адаптера вы должны использовать этот gradle: — compile ‘ com.андроид.поддержка: поддержка-v13:+’
Открыть DialogFragment on нажмите кнопку
DialogFragment