gpt4 book ai didi

android - 滑动时刷新 ViewPager fragment

转载 作者:行者123 更新时间:2023-11-30 01:47:34 26 4
gpt4 key购买 nike

我想使用 viewpager 显示一堆对象中的信息。我有一个包含 4 个 fragment 的 viewpager,我希望每次我将 viewpager 滑动到另一个 fragment 时,不可见的 fragment 都会从堆栈中弹出/查看一个对象。

我已经尝试了一些东西。我试图使用 OnPageChangeListener() 来监听页​​面更改,并找到一些方法来更新 Activity 内部的 fragment 内容。我没能做到。

这是我的适配器:

public class PagerAdapter_Browse extends FragmentPagerAdapter {

FragmentManager mManager;

public PagerAdapter_Browse(FragmentManager fm) {
super(fm);
mManager = fm;
}

@Override
public Fragment getItem(int arg0) {
switch (arg0) {
case 0:
return new FragmentBrowseOne();
case 1:
return new FragmentBrowseTwo();
case 2:
return new FragmentBrowseThree();
case 3:
return new FragmentBrowseFour();
default:
break;
}
return null;
}


@Override
public int getCount() {
return 4;
}
}

我的一个 fragment (看起来都大同小异):

public class FragmentBrowseOne extends Fragment {


ImageView main_img;
View view;

public FragmentBrowseOne(){
setArguments(new Bundle());
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

Bundle bundle = getArguments();

BitmapDrawable profilePic;

view = inflater.inflate(R.layout.fragment_browse_one, container, false);

main_img = (ImageView) view.findViewById(R.id.main_img);

Bitmap temp = bundle.getParcelable("object");
profilePic = new BitmapDrawable(getResources(), temp);
main_img.setBackground(profilePic);

main_img.setScaleType(ImageView.ScaleType.CENTER_CROP);

return view;
}
}

这是我 Activity 的一部分:

    viewpager = (ViewPager) findViewById(R.id.pager_browser);
padapter = new PagerAdapter_Browse(getSupportFragmentManager());

PagerAdapter wrappedAdapter = new InfinitePagerAdapter(padapter);
viewpager.setAdapter(wrappedAdapter);

viewpager.setId(R.id.pager);

viewpager.setOffscreenPageLimit(1);

viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {

}

public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

public void onPageSelected(int position) {
FragmentBrowseOne fragment = new FragmentBrowseOne();

Bitmap pic = BitmapFactory.decodeResource(getResources(), R.mipmap.samplegirl4);
fragment.getArguments().putParcelable("object", pic);
}
});

最佳答案

使用 SetArguments 并将它传递给每个 fragment 。参数必须包含进行了必要更改的新对象。使用构造函数

public FragmentNumber(){
setArguments(new Bundle());
}

使用以下方法返回 fragment

FragmentNumber fragment = new FragmentNumber();
fragment.getArguments().putSerializable("object", newobject);

这将在页面更改时刷新 fragment 内的数据。

关于android - 滑动时刷新 ViewPager fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33497155/

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