Ian*_*ink 26 android uinavigationcontroller
在iPhone上,我使用导航控制器来推送和弹出视图.非常便利.
在Android中是否有同等效力?
And*_*rew 32
这是一个老问题,但我相信答案已经改变.现在可以使用Fragments在Android中模拟iOS中的Nav堆栈. http://developer.android.com/reference/android/app/Fragment.html
基本上不是从Activity跳转到Activity而是保留在一个Activity中,它控制Fragments的显示,组织和动画,每个Frag都包含自己的行为,就像iOS中的NavController/UIViewController模型一样.
它也作为静态库向后兼容,因此您可以在Honeycomb之前的设备上实现它. 蜂窝和向后兼容的策略
我制作了一个框架(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
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过从NavigationActivity 调用pushFragment方法来呈现新片段(带有漂亮的动画).
public void pushFragment(Fragment newFragment, animationType animation, boolean showAsDetailFragmentIfPossible)
Run Code Online (Sandbox Code Playgroud)
newFragment(Fragment):将呈现的新片段
animation(animationType):动画类型枚举:RIGHT_TO_LEFT,BOTTOM_TO_TOP,FLIP
showAsDetailFragmentIfPossible(boolean):如果设置为True,则用户在Tablet中,并且您正在使用主 - 细节布局,片段将显示在细节片段(右侧的面板)中!
由于您可以使用getActivity()方法从任何片段访问活动,因此您可以从当前显示的片段中显示新的片段.例如,您可以将此代码放在按钮单击侦听器中:
NextFragment f = new NextFragment();
NavigationActivity nav =((NavigationActivity)getActivity());
nav.pushFragment(f,NavigationActivity.animationType.RIGHT_TO_LEFT,false);
Run Code Online (Sandbox Code Playgroud)
您不必担心实现后退按钮行为.这由NavigationActivity类自动处理.
| 归档时间: |
|
| 查看次数: |
16647 次 |
| 最近记录: |