Android의 ViewPager와 관련된 문제가 있습니다. 나는 현재 VerticalViewPager를 구현하려고 시도하고있다. (이 문제는 일반적인 ViewPager에서 발생하는 문제와 관련이 없다.) 내 데이터베이스에서 물건을 가져 와서 화면에 입력하는 커스텀 PagerAdapter가있다.첫 번째 뷰 페이지 페이지가 비어 있습니다.
문제는 내 첫 번째 카드를 다음 페이지로 넘기고 다시 돌아올 때까지 비워 두는 것입니다. 그 후에 내용은 거기있다. 나는 누군가가이 문제에 대해 밝힐 수 있기를 바랍니다. 나는 비슷한 문제를 여기에 발견 : Why is the first view in ViewPager appearing empty? 및 Activity using ViewPager, PagerAdapter and AsyncTask causes a blank view하지만 거기에 아무 것도 나를 도울 수있는 것 같습니다.
이
내 사용자 정의 PagerAdapter 코드 :public class BeginnerCardCursorPagerAdapter extends PagerAdapter {
private Cursor cursor;
private LayoutInflater inflater;
public BeginnerCardCursorPagerAdapter(Context context, Cursor cursor){
this.cursor = cursor;
this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public void swapCursor(Cursor cursor){
this.cursor = cursor;
}
@Override
public void destroyItem(View view, int position, Object object) {
((VerticalViewPager) view).removeView((RelativeLayout) object);
}
@Override
public int getCount() {
if(cursor == null) {
return 0;
} else {
return 90;
}
}
@Override
public Object instantiateItem(View view, int position) {
RelativeLayout layout = null;
int position2 = position;
if(position == 0){
layout = (RelativeLayout) inflater.inflate(R.layout.activity_slide_info, null);
}if(position == 89){
layout = (RelativeLayout) inflater.inflate(R.layout.activity_advertisement_beginner, null);
}
else if(position > 0 && position < 89){
position2--;
cursor.moveToPosition(position2);
layout = (RelativeLayout) inflater.inflate(R.layout.activity_card, null);
layout.setBackgroundResource(R.drawable.card_beginner);
TextView cardTitle = (TextView) layout.findViewById(R.id.pirate_card_title);
TextView cardExample = (TextView) layout.findViewById(R.id.pirate_card_example);
TextView cardDefinition = (TextView) layout.findViewById(R.id.pirate_card_definition);
cardTitle.setText(cursor.getString(cursor.getColumnIndex(FlashCardTable.COLUMN_TITLE)));
cardExample.setText(cursor.getString(cursor.getColumnIndex(FlashCardTable.COLUMN_SENTENCE)));
cardDefinition.setText(cursor.getString(cursor.getColumnIndex(FlashCardTable.COLUMN_DEFINITION)));
}
((VerticalViewPager) view).addView(layout);
return layout;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
}
destroyitem 메서드에서이 선 ((VerticalViewPager) 뷰) .removeView ((RelativeLayout) 객체)를 제거합니다. –
불행히도, 주사위 없음 – user2525981
동적 높이 viewpager를 사용하고 있습니까? – Govind