gpt4 book ai didi

android - 为什么 ViewPager 中的第一个 View 显示为空?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:40 27 4
gpt4 key购买 nike

我有一个使用以下适配器的 viewpager,加载后第一个 View 显示为空,但事实并非如此。如果我滚动到下一个 View 然后向后滚动,我可以看到内容。

import android.content.Context;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.TextView;
import java.util.ArrayList;

public class MyPagerAdapter extends PagerAdapter {

Context context;

public ArrayList<TextView> mViews;

int layoutResourceId;

public MyPagerAdapter(Context context) {
mViews = new ArrayList<TextView>();

}

@Override
public void destroyItem(View view, int arg1, Object object) {
((ViewPager)view).removeView((View)object);
}

@Override
public void finishUpdate(View arg0) {

}

@Override
public int getCount() {
return mViews.size();
}

@Override
public Object instantiateItem(View view, int position) {
View myView = mViews.get(position);
((ViewPager)view).addView(myView);
return myView;
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}

@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {

}

@Override
public Parcelable saveState() {
return null;
}

@Override
public void startUpdate(View arg0) {

}

@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}

}

这是从我的 Activity 中实现它的代码...

public void resetPages() {
if (mPageText == null)
return;
mPagerAdapter.mViews.clear();
for (int i = 0; i < mPageText.size(); i++) {
TextView tv = new TextView(this);
tv.setTextSize(mSelectedFontSize);
tv.setText(mPageText.get(i));
tv.setId(i);
tv.setTag(i);
tv.invalidate();
mPagerAdapter.mViews.add(tv);
}

mPagerAdapter.notifyDataSetChanged();
mViewPager.refreshDrawableState();
}

最佳答案

尝试添加 followind onCreate 方法并且我的代码有效(启动时出现“TEXT 0”)。也许只是因为在不合适的时间调用了 resetPages()?

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPageText = new LinkedList<CharSequence>();
for (int i=0; i<10; i++) {
mPageText.add("TEXT "+i);
}
this.mPagerAdapter = new MyPagerAdapter(this);
this.mViewPager = (ViewPager)this.findViewById(R.id.viewpager);
this.mViewPager.setAdapter(mPagerAdapter);
resetPages();
}

关于android - 为什么 ViewPager 中的第一个 View 显示为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379942/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com