#第一章:项目的准备
##一、项目的第一步
导入包
compile 'com.android.support:design:24.2.1'
软件包分类:
com.yijia.com.smartbutler.adapter
com.yijia.com.smartbutler.application
com.yijia.com.smartbutler.entity
com.yijia.com.smartbutler.fragment
com.yijia.com.smartbutler.service
com.yijia.com.smartbutler.ui
com.yijia.com.smartbutler.utils
com.yijia.com.smartbutler.view
##二、主布局
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/mTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:tabGravity="fill"
app:tabIndicatorColor="@color/colorAccent"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/colorAccent"
app:tabTextColor="@android:color/white" />
<android.support.v4.view.ViewPager
android:id="@+id/mViewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
//悬浮按钮
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="15dp"
android:layout_marginRight="15dp"
android:src="@drawable/icon_setting" />
</RelativeLayout>
##三、BaseActivity——Activity的基类
显示返回键:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//菜单栏操作
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home://系统自带的返回键点击退出程序
finish();
break;
}
return super.onOptionsItemSelected(item);
}
##四、MainActivity
###①初始化数据initData:添加标题和Fragment
//初始化数据
private void initData() {
mTiltle = new ArrayList<String>();
mTiltle.add("服务管家");
mTiltle.add("微信精选");
mTiltle.add("美女社区");
mTiltle.add("个人中心");
mFragment = new ArrayList<Fragment>();
mFragment.add(new BulterFragment());
mFragment.add(new WeChatFragment());
mFragment.add(new GirlFragment());
mFragment.add(new UserFragment());
}
###②初始化initView:
//初始化view
private void initView() {
mTabLayout = (TabLayout) findViewById(R.id.mTabLayout);
mViewPager = (ViewPager) findViewById(R.id.mViewPager);
//预加载
mViewPager.setOffscreenPageLimit(mFragment.size());
//设置适配器
mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
//选中的
@Override
public Fragment getItem(int position) {
return mFragment.get(position);
}
//返回item的个数
@Override
public int getCount() {
return mFragment.size();
}
//返回标题
@Override
public CharSequence getPageTitle(int position) {
return mTiltle.get(position);
}
});
mTabLayout.setupWithViewPager(mViewPager);
}
###③隐藏悬浮按钮
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == 0) {
fab_setting.setVisibility(View.GONE);
} else {
fab_setting.setVisibility(View.VISIBLE);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
##一、项目的第一步
导入包
compile 'com.android.support:design:24.2.1'
软件包分类:
com.yijia.com.smartbutler.adapter
com.yijia.com.smartbutler.application
com.yijia.com.smartbutler.entity
com.yijia.com.smartbutler.fragment
com.yijia.com.smartbutler.service
com.yijia.com.smartbutler.ui
com.yijia.com.smartbutler.utils
com.yijia.com.smartbutler.view
##二、主布局
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/mTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:tabGravity="fill"
app:tabIndicatorColor="@color/colorAccent"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/colorAccent"
app:tabTextColor="@android:color/white" />
<android.support.v4.view.ViewPager
android:id="@+id/mViewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
//悬浮按钮
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="15dp"
android:layout_marginRight="15dp"
android:src="@drawable/icon_setting" />
</RelativeLayout>
##三、BaseActivity——Activity的基类
显示返回键:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//菜单栏操作
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home://系统自带的返回键点击退出程序
finish();
break;
}
return super.onOptionsItemSelected(item);
}
##四、MainActivity
###①初始化数据initData:添加标题和Fragment
//初始化数据
private void initData() {
mTiltle = new ArrayList<String>();
mTiltle.add("服务管家");
mTiltle.add("微信精选");
mTiltle.add("美女社区");
mTiltle.add("个人中心");
mFragment = new ArrayList<Fragment>();
mFragment.add(new BulterFragment());
mFragment.add(new WeChatFragment());
mFragment.add(new GirlFragment());
mFragment.add(new UserFragment());
}
###②初始化initView:
//初始化view
private void initView() {
mTabLayout = (TabLayout) findViewById(R.id.mTabLayout);
mViewPager = (ViewPager) findViewById(R.id.mViewPager);
//预加载
mViewPager.setOffscreenPageLimit(mFragment.size());
//设置适配器
mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
//选中的
@Override
public Fragment getItem(int position) {
return mFragment.get(position);
}
//返回item的个数
@Override
public int getCount() {
return mFragment.size();
}
//返回标题
@Override
public CharSequence getPageTitle(int position) {
return mTiltle.get(position);
}
});
mTabLayout.setupWithViewPager(mViewPager);
}
###③隐藏悬浮按钮
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == 0) {
fab_setting.setVisibility(View.GONE);
} else {
fab_setting.setVisibility(View.VISIBLE);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});