/imitated-wechat

android仿微信主界面设计,一个主活动添加四个碎片

Primary LanguageJava

Andriod仿造微信主界面

1 工程概况

1.1 工程相关

  • android sdk tools:26.1.1
  • Build tools Version:28.0.3
  • gradle :2.3.3

1.2 工程概述

       本工程由一个活动,动态添加四个碎片实现。需要准备四组图标,表示没有被点击和正常点击或者滑动变色。本文所需的图标都是从阿里巴巴矢量图标库下载。变色的图标经过ps的魔棒工具简单处理,再次调色即可。

2 活动动态添加四个碎片

2.1 布局文件

<FrameLayout    
android:id="@+id/address_layout"    
android:layout_width="0dp"    
android:layout_height="0dp"  
 android:layout_weight="0">

FrameLayout是android中最简单的一种布局,这里用来加入随便很合适。本工程放在bottom.xml里面。

2.2主活动继承Fragment的OnFragmentInteractionListener

  • 本文是一个活动加载多个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();
}

2.3Fragment重写方法

  • Fragment类里面重写onActivityCreated方法。里面可以加自己的逻辑,本工程是注册了一个点击事件。也可以在里面新建逻辑线程,这样不会阻塞UI线程。

3 滑动翻页和点击翻页逻辑

3.1 滑动翻页

  • 滑动翻页是通过ViewPager.getCurrentItem()方法获取当前滑动页面,然后再通过ImageButton按键实例setImageResource方法加载我们加过颜色的按键,显示处于当前页面的效果。本工程对应的方法是

onPageSelected。

3.2 点击翻页

  • 点击翻页是通过View.getId()获取当前点击页面,再加载加过颜色的按键,显示点击的效果。本工程是onClick()

4 效果

default.png
仿造微信,加载工程完成后默认是首页。
test.gif
测试效果
log.png
点击Fragment里面的按键,会有对应的日志打印,说明按键已经被调用

有问题欢迎提issues,欢迎star~