思路分析
实现导航栏有很多思路,一种比较简单的方法是使用 Fragment 和 BottomNavigationView 实现
- Activity 作为 Fragment 的宿主
- BottomNavigationview 作为底部 tab 用来切换
- Framelayout 作为 Fragment 的容器
- FragmentManager (FragmentTransaction) 作为隐藏和显示的开关
思路很简单,实现起来也很简单,我看到 wanAndroid 这款 APP 就是使用这种思路做的导航栏
效果如下
代码
Activity
package me.tinuv.fragmentfornavi;
import android.os.Bundle;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ArrayList<Fragment> fragments;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragments = new ArrayList<>();
fragments.add(HomeFragment.newInstance());
fragments.add(DashBoardFragment.newInstance());
fragments.add<