继上篇博文说到了实现实现同个Activity中存在多个Fragment多次切换依次返回之后,就一直想自己维护一个Fragment的栈来实现同样的效果甚至比依次返回的效果更佳,能够随意回退到任意Fragment
效果图(一): 依次回退
首先分析一下思路,无非就是自己定义一个栈,然后将我们每次显示的Fragment放到我们的栈里面,想要依次返回的时候就从栈顶开始弹栈,如果想要返回到任意Fragment的时候,就去栈中找到这个Fragment
于是我们就要用到Stack这个类了
首先简单介绍下Stack,首先它是继承Vector,在Vector基础上,做了一些拓展,主要方法如下
方法名
返回类型
说明
empty
boolean
判断是否为空
peek
E
返回栈顶元素
pop
E
弹出栈顶元素,并将该元素返回
push
E
将元素压入栈
search
int
返回最靠近顶端的目标元素到顶端的距离。
代码是检验真理最好的老师
1,首先还是需要3个Fragment
public class Fragment1 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1,container,false);
TextView mTextView = (TextView) view.findViewById(R.id.tv_fragment_content);
mTextView.setText("Fragment1");
return view;
}
}
public class F