Articles of android navigation

Android TaskStackBuilder startActivities打开白色屏幕,有时会在Samsung Galaxy S3上冻结

尝试使用TaskStackBuilder下的startActivities()方法有时在某些手机上启动活动时出现问题(特别是在三星Galaxy S3 – Android 4.3,三星Galaxy S3 Neo – Android 4.4.2 ) 以下是使用的代码段: TaskStackBuilder stackBuilder = TaskStackBuilder.create(ConfirmAddressActivity.this); stackBuilder.addParentStack(AddressesActivity.class); Intent intent = AddressesActivity.createStartingIntent(ConfirmAddressActivity.this, true, Collections.EMPTY_LIST); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); stackBuilder.addNextIntent(intent); stackBuilder.startActivities(); 有缺陷的行为是,在执行stackBuilder.startActivities()它会打开一个白色屏幕,并在不打开AddressesActivity的情况下保持冻结状态。 这不是常规行为,有时会发生。 正常行为是,在执行stackBuilder.startActivities()它会打开一个白色屏幕(0.5秒-1秒),然后打开AddressesActivity,同时正确构建该活动的完整后台堆栈。 这是许多设备/平台下的正确行为。 ( HTC M9 Android 6.0,三星S2 – Android 4.1.2,三星Galaxy S6 – Android 5.1.1,LG G4 – Android 5.1.1 ) 这是定义活动的android清单片段: 非常感谢对此问题的任何帮助或见解。

Android:使用navigateUpFromSameTask()时转换错误

我刚刚开始使用Android,我按照本指南将向上导航添加到操作栏上的活动。 http://developer.android.com/training/implementing-navigation/ancestral.html 然而,当我使用动作栏中的向上按钮时的转换使其显示为打开新活动的淡入过渡而不是应该是淡出的过程,就像按下按钮上的后退按钮时一样。底部。 我该怎么做才能让它显示正确的过渡? 谢谢。

平板电脑的Android片段导航 – 单个或多个活动?

我希望实现这样的导航(下图),其中片段A,B,C,D表示在应用程序的信息层次结构中向下导航。 在电话上只能看到一个片段,在平板电脑上有两个片段可见。 我见过的所有教程和文档(例如this和this )都提到了Master-Detail视图,左边有一个主片段,右边有一个详细视图,但似乎没有人指定如何钻从细节更深入。 事实上,平板电脑的GMail应用程序可以作为我自己的应用程序。 假设片段A是帐户和文件夹列表,片段B是电子邮件列表,片段C是会话本身。 该屏幕是具有片段A和B的配置 该屏幕具有片段B和C. 问题是:我应该用一个Activity来实现它,其中 对于手机我将有一个FrameLayout片段 对于平板电脑,我将为“左”和“右”片段设置两个FrameLayouts? 如果是这样,我将如何插入新的片段? 在FragmentTransaction中,我有两个可用的操作 – add()和replace() 。 如果我使用add() ,那么下面的片段似乎是活着的(它们不会进入暂停状态)并保持其完整状态(但可能会浪费一些资源)(因此在片段D中,所有C,B和A都将仍然在那里),并在后退按钮上滚动状态和加载的数据仍将存在 如果我使用replace() ,那么之前的片段将被移除,因此在任何时刻顶部只会有一个(在电话上)片段,而在后退按钮上,事务将被反转,旧片段被添加回来,但它不会记住它以前的状态 这些选项似乎都不适合我。 教程在FragmentTransaction中使用了replace() – 但是它们如何恢复前一个片段的状态,例如在GMail应用程序中,电话片段B从服务器加载无限滚动,然后当我用片段C替换它时然后回去,B应该出现在它离开的地方,对吧? 我真的不知道该做什么或在哪里看,请指教。

我必须在Android Manifest中指定父活动名称吗?

我有一项活动开始另一项活动。 我是否必须在Android Manifest中指定父活动? 我问这个因为可能还有其他活动会启动这个,所以我应该指定所有这些活动吗? android:parentActivityName=”com.example.myfirstapp.MainActivity”

没有Actionbar的导航抽屉

我搜索了很多站点(stackoverflow),但无法理解如何在没有操作栏的情况下实现导航抽屉。 我知道这个问题已在这里提出,但它没有正确的解释和代码。 我是android开发的初学者,所以任何人都可以用代码向我解释如何制作没有操作栏的导航抽屉 提前致谢!

没有显示的Recycler视图

我一直在制作一个应用程序,它在导航抽屉中使用回收器视图,以确定回收器视图的内容是如何显示的。 视图肯定是他们,因为我可以看到滚动阴影。 我不确定我是否做错了,因为应用程序在运行时不会崩溃。 导航抽屉片段: public class NavigationDrawerFragment extends android.support.v4.app.Fragment { public static final String PREF_FILE_NAME = “testPref”; public static final String KEY_USER_LEARNED_DRAWER = “user_learned_drawer”; private RecyclerView mRecyclerView; private ActionBarDrawerToggle mDrawerToggle; private DrawerLayout mDrawerLayout; private View containerView; private Boolean mUserLearnedDrawer; private Boolean mFromSavedInstanceState; private DrawerAdapter adapter; public NavigationDrawerFragment() { mFromSavedInstanceState = false; } @Override public void […]

如何实现android工具栏后退按钮

我正在使用自定义工具栏。 我需要添加回按钮。 现在我使用此代码添加后退按钮。 Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar); toolbar.setBackgroundColor(getResources().getColor(R.color.white)); toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.back_arrow)); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); 这很好用。 我可以看到添加了后退按钮。 但请考虑我在Fragment1中没有后退按钮的情况。 现在我转到Fragment2,然后添加Back Button。 从片段2我打开片段3然后我再次添加后退按钮。 现在,当我按下fragment3中的后退按钮返回到fragment2时,我必须检查片段堆栈以查看片段2中是否需要后退按钮。 当我们将片段推送到堆栈时,还有其他方法可以自动处理后退按钮吗?

Android Jetpack导航,使用Youtube或Instagram的BottomNavigationView,如正确的后退导航(片段后退堆栈)?

Android Jetpack导航,BottomNavigationView在后退按钮上点击自动片段后栈? 我想要的是,在用户一个接一个地选择多个标签后,用户点击后退按钮应用必须重定向到他/她打开的最后一页。 通过将当前选定的项目保存在ArrayList中,我使用Android ViewPager实现了相同的function。 Android Jetpack导航发布后是否有任何自动后退堆栈? 我想用导航图实现它 activity_main.xml中 navigation.xml 还补充道 bottomNavigation.setupWithNavController(Navigation.findNavController(this, R.id.my_nav_host_fragment)) 我从Levi Moreira那里得到了一个答案如下 navigation.setOnNavigationItemSelectedListener {item -> onNavDestinationSelected(item, Navigation.findNavController(this, R.id.my_nav_host_fragment)) } 但通过这样做只发生了最后打开的片段的实例再次创建。 为BottomNavigationView提供适当的后退导航

ViewPager PagerObserver未注册

当我关闭屏幕并重新打开时,我的应用程序关闭。 Logcat告诉我,这个错误的原因是指向我的CourseFragment.class中的java line 60,它扩展了Fragment。 mViewPager.setAdapter(infoTechPageAdapter); 我在CourseFragment.class中实现了一个ViewPager,它扩展了Fragment。 这是我的代码: public class CourseFragment extends Fragment { public static final String ARG_POSITION_NUMBER = “course_number”; private int position; public CourseFragment() { // Empty constructor required for fragment subclasses } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView; position = getArguments().getInt(“position”); String course = getResources().getStringArray( R.array.array_navigation_drawer)[position]; getActivity().setTitle(course); […]

Android:返回上一个片段

我已经实现了Navigation Drawer,它是Activity的子类。 我的应用程序中有很多片段。 我的问题在这里 想象一下有3个片段: Fragment_1:Fragment_2:Fragment_3 当我启动我的应用程序时,Fragment_1被加载当我点击Fragment_1上的一些组件时,我将导航到Fragment_2,依此类推。 就这样 Fragment_1> Fragment_2> Fragment_3 当我从Fragment_2按回键时,我将导航回Fragment_1但是当我从Fragment_3按回键时,我将导航回Fragment_1(而不是Fragment_2) 我在Back Key按下的应用程序中想要这样的东西 Fragment_1 <Fragment_2 <Fragment_3 我使用Fragment,FragmentManager,FragmentTransaction如下: MyFragment fragment = new MyFragment(); FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).addToBackStack(null)commit(); 我尝试在我的MainActivity中覆盖onBackPressed(): @Override public void onBackPressed() { getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); int count = getFragmentManager().getBackStackEntryCount(); if (count == 0) super.onBackPressed(); }