【发布时间】:2014-09-02 01:37:29
【问题描述】:
当我点击导航抽屉项时,片段会启动一个活动。
public class CalculateFareFragment extends Fragment {
View rootView;
@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
Intent intent = new Intent(getActivity().getApplicationContext(), CalculateFareActivity.class);
startActivity(intent);
return null;
}
在活动中,当我按下返回按钮时,设备上的屏幕会闪烁并再次显示相同的活动。第二次按下后退按钮将我带到应用程序的默认屏幕。
有没有办法克服这种行为,这样我就不需要按两次后退按钮了?
编辑:根据@spurdow 的建议,我设法添加了addToBackStack(null)
android.app.FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
我仍然没有看到行为有任何变化。还有什么遗漏的吗?
【问题讨论】:
-
你试过在后台添加 null 吗?
-
不,我会试试的。我不知道该怎么做。
-
当您在
beginTransaction和add之后在FragmentManager中创建事务时,您可以将其添加到后台堆栈或空 -
为什么需要创建一个片段来启动另一个活动?
CalculateFareFragment有其他用途吗? -
好的。我承认我很懒惰。但是懒惰导致了这种情况。我可能可以修复代码并将活动更改为片段。我认为从片段中调用活动会更快:(
标签: android android-activity navigation-drawer