- android sdk tools:26.1.1
- Build tools Version:28.0.3
- gradle :2.3.3
本工程由一个活动,动态添加四个碎片实现。需要准备四组图标,表示没有被点击和正常点击或者滑动变色。本文所需的图标都是从阿里巴巴矢量图标库下载。变色的图标经过ps的魔棒工具简单处理,再次调色即可。
<FrameLayout
android:id="@+id/address_layout"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0">
FrameLayout是android中最简单的一种布局,这里用来加入随便很合适。本工程放在bottom.xml里面。
- 本文是一个活动加载多个Fragment,所以活动需要继承多个OnFragmentInteractionListener。继承之后需要重写onFragmentInteraction方法。
@Override
public void onFragmentInteraction(Uri uri) {}
- 编写动态切换Fragment函数
本工程是replaceAddressFragment方法。
private void replaceAddressFragment(Fragment fragment){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.address_layout,fragment);
transaction.commit();
}
- Fragment类里面重写onActivityCreated方法。里面可以加自己的逻辑,本工程是注册了一个点击事件。也可以在里面新建逻辑线程,这样不会阻塞UI线程。
- 滑动翻页是通过ViewPager.getCurrentItem()方法获取当前滑动页面,然后再通过ImageButton按键实例setImageResource方法加载我们加过颜色的按键,显示处于当前页面的效果。本工程对应的方法是
onPageSelected。
- 点击翻页是通过View.getId()获取当前点击页面,再加载加过颜色的按键,显示点击的效果。本工程是onClick()
仿造微信,加载工程完成后默认是首页。
测试效果
点击Fragment里面的按键,会有对应的日志打印,说明按键已经被调用
5 demo地址
有问题欢迎提issues,欢迎star~