ImageView在SwipeTabs之后更改Android
问题描述:
拍完我的照片和签名后,它会显示在ImageView
上。但是,在交换标签之后,ImageView
返回到其默认图像。看我的截图。ImageView在SwipeTabs之后更改Android
当谈到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标签(片段,实际上)轻扫,默认行为是系统杀死以前Fragment
以释放内存和随后的片段到当前会被加载到内存中。
现在,您的代码正在发生类似的事情。当您在第三个选项卡(CaptureSignatureFragment)中加载照片和签名,然后滑过选项卡时,CaptureSignatureFragment
将被终止,因此两个ImageView都会为其设置默认图像。
如果你想保持数据的第三个标签,即使更换标签后完好无损,你最好设置你的ViewPager的offscreen limit
至4(没有你的选项卡。)由:
viewPager.setOffscreenPageLimit(4)
现在,改变该标签不会杀死任何fragments
。但是,这样做会造成性能问题。
这解决了我的问题:)谢谢先生,顺便说一句,谢谢你的信息。打的好! –