gpt4 book ai didi

java - Android SwipeTabs 之后 ImageView 发生变化

转载 作者:行者123 更新时间:2023-12-01 09:05:00 29 4
gpt4 key购买 nike

拍摄照片和签名后,它会显示在 ImageView 上。但是,在交换选项卡后,ImageView 返回到其默认图像。请参阅我的屏幕截图。

sample image- screenshot

editText 没有问题,输入的值仍然存在。但是,ImageView 是我的问题。是什么导致了这个问题?我该如何解决这个问题?

代码:

public class RegisterUser extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.activity_register_user,container,false);
// Setting ViewPager for each Tabs
ViewPager viewPager = (ViewPager) v.findViewById(R.id.viewpager);
setupViewPager(viewPager);
// Set Tabs inside Toolbar
TabLayout tabs = (TabLayout) v.findViewById(R.id.tabs);
tabs.setupWithViewPager(viewPager);
// Create Navigation drawer and inlfate layout

return v;
}

// Add Fragments to Tabs
private void setupViewPager(ViewPager viewPager) {
Adapter adapter = new Adapter(getChildFragmentManager());
adapter.addFragment(new ListContentFragment(), "Info 1");
adapter.addFragment(new TileContentFragment(), "info 2");
adapter.addFragment(new CaptureSignatureActivity(), "info 3");
adapter.addFragment(new CardContentFragment(), "info 4");
viewPager.setAdapter(adapter);
}

static class Adapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();

public Adapter(FragmentManager manager) {
super(manager);
}

@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}

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

public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}

@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}

最佳答案

当您在 TabLayout 中滑动选项卡(实际上是 Fragments)时,默认行为是系统会杀死前一个 Fragment 以释放内存,并将当前 Fragment 的后续 Fragment 加载到内存。

现在,您的代码正在发生类似的事情。当您在第三个选项卡 (CaptureSignatureFragment) 中加载照片和签名,然后滑动选项卡时,CaptureSignatureFragment 会被终止,因此两个 ImageView 都会设置为默认图像。

如果您希望在更改选项卡后仍保持第三个选项卡中的数据不变,则最好将 ViewPager 的离屏限制设置为 4(您拥有的选项卡数量):

viewPager.setOffscreenPageLimit(4)

现在,更改选项卡不会杀死任何 fragment 。但是,这样做可能会产生性能问题。

关于java - Android SwipeTabs 之后 ImageView 发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41354702/

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