BottomTabBar实现底部导航页和滑动

//依赖 implementation 'com.hjm:BottomTabBar:1.1.3'

//因为比较简单所以直接上布局

//fragment就不一一创建了你们创建后直接把fragment名字改一下就行

//Mainacvity.javapackage com.example.www; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.MotionEvent; import android.view.View; import com.example.www.fragment.AFragment; import com.example.www.fragment.BFragment; import com.example.www.fragment.CFragment; import com.hjm.bottomtabbar.BottomTabBar; public class MainActivity extends AppCompatActivity {int overPosition; private BottomTabBar bottom_tab_bar; private float mPosX, mPosY, mCurPosX, mCurPosY; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); }private void initData() {setGestureListener(); bottom_tab_bar .init(getSupportFragmentManager()) .setImgSize(50,50)//设置icon图片尺寸 .setFontSize(8) //文字大小 .setTabPadding(4,6,10)//设置ICON图片与上部分割线的间隔、图片与文字的间隔、文字与底部的间隔 .setChangeColor(Color.RED,Color.DKGRAY)//设置选中的颜色、未选中的颜色 .addTabItem("购物车", R.mipmap.ic_launcher, R.mipmap.ic_launcher_round,AFragment.class)//设置文字、一张图片、fragment .addTabItem("我 的", R.mipmap.ic_launcher, R.mipmap.ic_launcher_round, BFragment.class)//设置文字、两张图片、fragment .addTabItem("K歌之王", R.mipmap.ic_launcher, R.mipmap.ic_launcher_round, CFragment.class)//设置文字、两张图片、fragment .isShowDivider(false)//设置是否显示分割线 .setTabBarBackgroundColor(Color.WHITE)//设置底部导航栏颜色 .setOnTabChangeListener(new BottomTabBar.OnTabChangeListener() { @Override public void onTabChange(int position, String name, View view) { //这里不用说,你们也都看的懂了 //暂时就返回了这俩参数,如果还有什么用的比较多的参数,欢迎留言告诉我,我继续添加上 Log.i("TGA", "位置:" + position + "选项卡的文字内容:" + name); //mViewPager.setCurrentItem(position); overPosition = position; }//添加选项卡切换监听 }) .setCurrentTab(0); //设置当前选中的tab,从0开始}private void setGestureListener() { bottom_tab_bar.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) {case MotionEvent.ACTION_DOWN: mPosX = event.getX(); mPosY = event.getY(); break; case MotionEvent.ACTION_MOVE: mCurPosX = event.getX(); mCurPosY = event.getY(); break; case MotionEvent.ACTION_UP: if (mCurPosX - mPosX > 0 && (Math.abs(mCurPosX - mPosX) > 25)) { //向左滑動 bottom_tab_bar.setCurrentTab(overPosition - 1); } else if (mCurPosX - mPosX < 0 && (Math.abs(mCurPosX - mPosX) > 25)) { //向右滑动 bottom_tab_bar.setCurrentTab(overPosition + 1); } break; } return true; } }); }private void initView() { bottom_tab_bar = (BottomTabBar) findViewById(R.id.bottom_tab_bar); } }

    推荐阅读