一种Tab滑动效果

课堂代码

我们将原来MainActivity的布局和代码全部转移到一个新的Fragment—ShoppingListFragment里。新的MainActivity只放ViewPager和TabLayout

修改layout/activity_main.xml

修改MainActivity.Java

新建一个Blank的Fragment,命名为ShoppingListFragment

新建一个Blank的Fragment,命名为WebViewFragment

新建一个Blank的Fragment,命名为TencentMapFragment

思考问题

Fragment和Activity之间如何传递数据

Fragment和它的宿主Activity是不是同一个线程

当Fragment被激活时,宿主Activity的findViewById能不能找到Fragment的View

宿主Activity能不能直接操作Fragment上的View

结论

Fragment和Activity基本上可以认为是在同一个线程,因此可以互相访问,但是由于Fragment可能被销毁,因此要做适当检查当前被激活的Fragment是哪一个(所以不建议直接访问),Fragment的onAttach和onDetach事件,可以在适当的时候表明自己是否被激活。