我创建的应用只有一个Activity
,FragmentActivity
的工作方式类似于" ViewPager
信息中心" 使用一些选项页面(ViewPager Fragments
),对于每个页面,我都有一些选项按钮。
此选项按钮切换 幻灯片菜单(SM) < / strong>根据按下的按钮更改其布局(子菜单fragment
)。
此子菜单在其父fragment
菜单方法(调用createFragments())内创建:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
父菜单有3个辅助方法来管理子菜单fragments
:
private void createFragments() {
...
mSubMenuFragmentMap.put(..., new SubMenuFragment(...));
for (Map.Entry<String, BaseSubMenuFragment> frag : mSubMenuFragmentMap.entrySet()) {
getFragmentManager().beginTransaction().add(mMenuSlideUp.getId(), frag.getValue(), frag.getKey()).commit();
}
hideFragments();
}
private void hideFragments() {
for (Fragment frag : mSubMenuFragmentMap.values()) {
getFragmentManager().beginTransaction().hide(frag).commit();
}
}
private void changeSubMenuFragment(int elementResId) {
if (!isVisible) {
mCurrentSubMenuFragment = mSubMenuFragmentMap.get(Integer.toString(elementResId));
hideFragments();
if (mCurrentSubMenuFragment != null) {
getFragmentManager().beginTransaction().show(mCurrentSubMenuFragment).commit();
}
}
toggleSlideMenu();
}
由changeSubMenuFragment
菜单页面中的选项按钮调用ViewPager
。
SubMenuFragment extends BaseSubMenuFragment
有两个抽象方法:
protected void onLayoutSetup(ViewGroup rootView)
和
protected void onLayoutRefresh(boolean slideMenuIsUp)
当子菜单第一次向上滑动时调用onLayoutSetup
,每次子菜单切换(向上或向下滑动)时调用onLayoutRefresh
。
一切都按预期工作但我在创建和显示子菜单的布局时遇到了一点延迟(onLayoutSetup
),但这只是第一次。如果我的子菜单有ListViews
(设置BaseAdapter
)或ScrollViews
,则会延迟它。发生了什么是子菜单向上滑动,我等待大约2秒钟(这是一个例子,因为它取决于子菜单布局的复杂性)并且布局显示出来(从现在开始这个子菜单在显示时不会出现延迟)。
我在这里做错了什么?
谢谢你的时间