APP中出现多个页面再常见不过了。使用activity与fragment都能实现多页面,这里使用fragment来实现。延续“知音”这个APP的开发,之前已经创建了底部导航条与mainactivity。
首先创建一个fragment,作为“广场”页面。在菜单中new一个fragment出来即可,如下面的截图:
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMV1V5T1RVNE5XWTBPVGd4TVRZM056VXVhbkJuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4NE1EY3ZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMV1l5WkRCa01qVmhOVEZoTVRFellUSXVhbkJuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4NU1USXZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMVFUwTnpreU5XTTBNREJpT1RZNFptVXVhbkJuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4NU5qVXZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMVE01TnpreU1ESTBNemcwTm1FNE1Ua3VhbkJuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4NU5qWXZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
注意,Fragment有两个基类,一个是android.app.Fragment,一个是android.support.v4.app.Fragment,这里使用的是后者,之后在activity中使用fragment时,也要使用后者。
给这个fragment增加一个简单的创建的方法(这个方法之后给activity使用),如图:
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMVFF5WVROaFltWXdNemMxTldKbE0yUXVhbkJuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4Mk1UUXZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
至此,fragment准备就绪,然后,就是activity来使用它。
先在main_activity的布局中,添加上这个fragment的布局(如果没有这一步,会导致运行时崩溃,提示No view found for...),如截图:
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMVEk0TjJabU0yVTRaVGc0WkRoak1qY3VhbkJuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4NE1URXZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
然后就是写代码使用这个fragment了,这里贴上MainActivity.java的完整代码:
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMVFk0WWpGa09EbGlOV1U1WlRZM1lqVXVhbkJuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4NE1qa3ZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMVFJrWm1Wak1HTXlOV1EwWVRBNE5tVXVhbkJuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4M01EUXZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
这里用FragmentManager来管理fragment,特别是多个fragment的时候。
运行一下,当点击第一个tab时,可以看到这个fragment显示出来(切到其它tab时,这个fragment会隐藏):
![android开发(2):多页面的实现 | Fragment的创建与使用 android开发(2):多页面的实现 | Fragment的创建与使用](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwzVndiRzloWkMxcGJXRm5aWE11YW1saGJuTm9kUzVwYnk5MWNHeHZZV1JmYVcxaFoyVnpMekUxTnpZNU5qazBMV05qTkdKak4yUmlOV0ZtWkRoaFpqSXVjRzVuUDJsdFlXZGxUVzluY2pJdllYVjBieTF2Y21sbGJuUXZjM1J5YVhBbE4wTnBiV0ZuWlZacFpYY3lMekl2ZHk4ME9EQXZabTl5YldGMEwzZGxZbkE9LmpwZw%3D%3D.jpg?w=700&webp=1)
以上是一个fragment的创建与使用的过程,如果要有多个页面,那自然创建多个fragment并控制,重复以上流程就可以了,是不是很简单?