【发布时间】:2016-02-23 14:40:16
【问题描述】:
我已经实现了寻呼机滑动条,它工作得很好。
我有 5 个标签,每个标签都包含不同的片段。当我单击第二个选项卡加载相应的片段时,它还会加载第三个片段的详细信息,它显示了我在第三个选项卡的片段中编码的 toast。
这完全破坏了应用程序的性能,我如何解决这个问题我不知道实际发生了什么。
我正在做一个非常大的项目,我无法发布整个代码。
请帮帮我,我会按需发布相应的代码。
问候。
编辑
正在加载另一个片段的通知片段
ListView notification_listview;
ArrayList<FragmentNotificationDTO> arraylist;
NotificationAdapter adapter;
private static View notificationView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (notificationView != null) {
ViewGroup parent = (ViewGroup) notificationView.getParent();
if (parent != null)
parent.removeView(notificationView);
}
notificationView = inflater.inflate(R.layout.fragment_notification,
container, false);
initLayout(notificationView);
loadData();
return notificationView;
}
private void initLayout(View view) {
notification_listview = (ListView) view.findViewById(R.id.notification_listview);
arraylist = new ArrayList<FragmentNotificationDTO>();
adapter = new NotificationAdapter(mContext, arraylist);
notification_listview.setAdapter(adapter);
}
这是食物片段,当我们点击通知选项卡时也会加载
private static View foodlistView;
RelativeLayout rl_foodshare, rl_foodrequested, rl_foodkitchen;
TextView tv_foodshare, tv_foodrequested, tv_foodkitchen;
ImageView img_foodshare, img_foodrequested, img_foodkitchen;
Fragment fr;
FragmentManager fm;
FragmentTransaction fragmentTransaction;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (foodlistView != null) {
ViewGroup parent = (ViewGroup) foodlistView.getParent();
if (parent != null)
parent.removeView(foodlistView);
}
foodlistView = inflater.inflate(R.layout.fragment_location_list,
container, false);
initLayout(foodlistView);
ChangeFragment(1);
return foodlistView;
}
MainActivity.java 包含 PagerSlidingStrip & View Pager
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()));
PagerSlidingTabStrip PGSTRIP = (PagerSlidingTabStrip) findViewById(R.id.tabs);
PGSTRIP.setViewPager(viewPager);
viewPager.setOffscreenPageLimit(0);
}
【问题讨论】:
-
检查您是否在多个片段中具有任何具有相同名称的视图的任何实例。我昨天遇到了类似的问题,就是这个问题。
-
@ParsaniaHardik 让我检查一下
-
@ParsaniaHardik 检查了所有片段,它完全没问题。如果我错过了上面发布的代码,请检查并解释我是否有任何问题
-
这是设计使然 - 查看寻呼机提前加载标签
-
它将所有标签保存在内存中,您只需要在开始时加载它们一次。还要检查this
标签: android android-fragments pagerslidingtabstrip