在iPhone上,我使用导航控制器来推送和弹出视图。非常方便。
Android中是否有同等效果?
答案 0 :(得分:30)
这是一个老问题,但我相信答案已经改变了。现在可以使用Fragments在Android中模拟iOS中的Nav堆栈。 http://developer.android.com/reference/android/app/Fragment.html
基本上不是从Activity跳转到Activity而是保留在一个Activity中,该Activity控制Fragments的显示,组织和动画,每个Frag都包含自己的行为,就像iOS中的NavController / UIViewController模型一样。
它也作为静态库向后兼容,因此您可以在Honeycomb之前的设备上实现它。 Strategies for Honeycomb & backward compatibility
答案 1 :(得分:6)
通常在android中,每个视图都显示在自己的Activity中。您可以在application fundamentals文档中阅读有关活动的信息。要移至新的活动或视图,请使用intent。
如果你还没有这样做,我强烈建议你阅读那些介绍性的android文档。它们不会太长,并且很好地解释了基本的程序结构。
答案 2 :(得分:5)
我制作了一个Framework (github)来提供分层导航模式,动画可以提供导航感,而不是每次都启动新的活动。
以下是如何使用它:
(在Android Studio中,如果单击Alt + insert并选择实现 - 方法将自动生成所有函数定义)。
public class NavigationTest extends NavigationActivity{
@Override
public Fragment firstFragment() {
//return the first fragment that will be shown
}
@Override
public Boolean showBackButtonInFirstFragment() {
//show back button already in the first Fragment
//set to True if this activity is called by another Activity
//the back button will then pop back to the previous Activity
}
@Override
public Boolean showMasterDetailLayoutInTablets() {
//set to false if you don't want a master-detail layout in tablets
}
}
您可以通过从NavigationActivity调用 pushFragment 方法来呈现新片段(带有漂亮的动画)。
public void pushFragment(Fragment newFragment, animationType animation, boolean showAsDetailFragmentIfPossible)
newFragment (片段):将展示的新片段
动画(animationType):动画类型枚举:RIGHT_TO_LEFT,BOTTOM_TO_TOP,FLIP
showAsDetailFragmentIfPossible (布尔值):如果设置为True,则用户在平板电脑中,并且您正在使用主 - 细节布局,片段将显示在细节片段中(面板中)右边)!
由于您可以使用getActivity()方法从任何片段访问活动,可以从当前显示的片段中显示新的片段。 例如,您可以将此代码放在按钮单击侦听器中:
NextFragment f = new NextFragment();
NavigationActivity nav =((NavigationActivity)getActivity());
nav.pushFragment(f,NavigationActivity.animationType.RIGHT_TO_LEFT,false);
您不必担心实施后退按钮行为。这由NavigationActivity类自动处理。
答案 3 :(得分:5)
Google在2018年推出了一个名为Navigation Architecture Component的新库。 导航组件是一个新的体系结构组件,旨在简化应用程序中导航的实现。首先,必须提到“导航”组件的作用域仅限于一个活动。
在此处了解更多-https://proandroiddev.com/android-navigation-arch-component-a-curious-investigation-3e56e24126e1
答案 4 :(得分:0)
Android中有一些基本类型可以在Android中显示UI:
Google IO 2018引入了Navigation component,这应该使生活更轻松。它是标准机制下的包装器。
在这里您可以找到看起来像故事板的NavGraph和有助于导航到目的地的NavController