我正在开发一个使用导航抽屉图案的应用程序(使用DrawerLayout).
每次单击抽屉的项目,都会替换主容器中的片段.
但是,我不确定何时是进行片段交易的合适时机?抽屉开始关闭时?或者关闭后?
在google的documentaion示例中,您可以看到他们在项目单击后立即执行事务,然后关闭抽屉.
结果,抽屉看起来很迟钝而且不平滑,看起来非常糟糕(它也发生在我的应用中).
在Gmail和Google云端硬盘应用程序中,另一方面,它似乎是在抽屉关闭后进行交易(我是对吗?).
结果,抽屉没有延迟且非常平滑,但至少需要大约1秒钟(抽屉关闭所需的时间)才能看到下一个片段.
在立即进行片段交易时,似乎抽屉没有办法顺畅.
你觉得怎么样?
提前致谢!
android android-fragments fragmenttransaction navigation-drawer drawerlayout
我遇到了导航抽屉的问题,它太慢了,我正在寻找的解决方案是首先关闭抽屉然后显示活动,但它不起作用,当然我错过了一些东西.
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int posicao, long id) {
setLastPosition(posicao);
setFragmentList(lastPosition);
layoutDrawer.closeDrawer(linearDrawer);
}
}
private OnClickListener userOnClick = new OnClickListener() {
@Override
public void onClick(View v) {
layoutDrawer.closeDrawer(linearDrawer);
}
};
private void setFragmentList(int posicao) {
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = new FragmentViagens();
switch (posicao) {
case 0:
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
break;
case 1:
fragmentManager.beginTransaction().replace(R.id.content_frame, new FragmentPedidos()).commit();
break;
case 2:
fragmentManager.beginTransaction().replace(R.id.content_frame, new FragmentClientes()).commit();
break;
}
navigationAdapter.setChecked(posicao, true);
setTitleFragments(lastPosition);
navigationAdapter.resetarCheck();
layoutDrawer.closeDrawer(linearDrawer); …Run Code Online (Sandbox Code Playgroud)