【发布时间】:2019-12-18 09:39:33
【问题描述】:
如何重用视图分页器中的片段??? 我有查看寻呼机,里面有 3 个片段。 我一直在创建片段的新实例。所以它需要更多的内存空间。 在这 3 个片段中执行相同的功能。虽然我每次都创建新实例。它有更多的问题,比如。 1)键盘打开和关闭需要时间。 2) Scrollview 需要时间来滚动。 3) 编辑文本需要时间来关注和关闭。
这里我用 3 个片段实现了 viewpager。在滑动它看起来像一样。
我已经创建了寻呼机适配器:
public class ProposalDetailPagerAdapter : FragmentStatePagerAdapter, CardAdapter
{
private static int NUM_ITEMS = 3;
private float mBaseElevation;
public ProposalDetailPagerAdapter(Android.Support.V4.App.FragmentManager fm, float baseElevation) : base(fm)
{
mBaseElevation = baseElevation;
}
public override int Count => NUM_ITEMS;
public override int GetItemPosition(Java.Lang.Object @object)
{
if (@object is ProposalDetailFragment)
{
ProposalDetailFragment fragment = (ProposalDetailFragment)@object;
if (fragment != null)
{
fragment.UpdateFragmentAfterCreate();
}
}
return base.GetItemPosition(@object);
}
public int getCount()
{
return NUM_ITEMS;
}
public override Android.Support.V4.App.Fragment GetItem(int position)
{
switch (position)
{
case 0:
return OpenFragment(0);
case 1:
return OpenFragment(1);
case 2:
return OpenFragment(2);
default:
return null;
}
}
private Android.Support.V4.App.Fragment OpenFragment(int position)
{
ProposalDetailFragment createdFragment = new ProposalDetailFragment();
Bundle bundle = new Bundle();
bundle.PutInt("position", position);
createdFragment.Arguments = bundle;
return createdFragment;
}
public override Android.Support.V4.App.Fragment GetItem(int position)
{
switch (position)
{
case 0:
return OpenFragment(0);
case 1:
return OpenFragment(1);
case 2:
return OpenFragment(2);
default:
return null;
}
}
}
在这个适配器中,创建了 3 个片段。但它有很多内存问题。因为很多条件都包含在片段中。并创建了 3 个内存实例。那么如何解决这个问题???
【问题讨论】: