一、 1)application类的建立
目的:首先,在一个Android程序中,有且只有一个Application对象,在程序开始跑起来的时候,首先执行Application的onCreate方法,这是一个Android应用的入口,在开发中,我们常常自定义一个BaseApplication用来执行某些操作。
a.处理全局变量,在整个应用程序范围内共享数据
b.管理Activity,当应用程序退出时,销毁所有的Activity
c.初始化应用程序的配置信息
d.当系统内存不足时应用能够做出合理的响应
++记得在AndroidManifest中加入name属性++
如下建立:
package com.example.myapplication.application;
import android.app.Application;
/**
* Created by xia on 2017/7/26.
*/
public class BaseAoolication extends Application {
@Override
public void onCreate() {
super.onCreate();
}
}
2)Activity基类的建立
作用:
*1.统一的属性
*2.统一的接口
*3.统一的方法代码如下:
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}}
3)实现滑动视图与FloatingActionButton
需要使用TabLayout,ViewPager,FloatingActionButton
使用TabLayout需要先导入远程库只需要在bulide.gradle中添加compile 'com.android.support:design:24.2.0'
布局界面
<?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="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!--orientation记得设置!!!否则无法显示viewpager-->
<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/FloatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="15dp"
android:layout_marginRight="15dp"
android:src="@drawable/icon_setting"/>
</RelativeLayout>
public class MainActivity extends AppCompatActivity {
private TabLayout mTabLayout;
private ViewPager mViewPager;
private List<String> tab;
private List<Fragment> fragments;
private FloatingActionButton floatingActionButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//消除布局与ActionBar间的阴影
getSupportActionBar().setElevation(0);
initData();
initView();
//为TabLayout添加适配器
mTabLayout.setupWithViewPager(mViewPager);
floatingActionButton.hide();
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,setting_Activity.class));
}
});
//ViewPager监听器
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
//postion每个页面的编号
@Override
public void onPageSelected(int position) {
if (position==0){
floatingActionButton.hide();
}else {
floatingActionButton.show();
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void initData() {
tab = new ArrayList<>();
tab.add("智能管家");
tab.add("微信精选");
tab.add("美女相册");
tab.add("个人中心");
fragments = new ArrayList<>();
fragments.add(new ButlreFragment());
fragments.add(new weixinFragment());
fragments.add(new girlFragment());
fragments.add(new userFragment());
}
private void initView() {
mTabLayout = (TabLayout) findViewById(R.id.mTabLayout);
mViewPager = (ViewPager) findViewById(R.id.mViewPager);
floatingActionButton= (FloatingActionButton) findViewById(R.id.FloatingActionButton);
//预加载
mViewPager.setOffscreenPageLimit(fragments.size());
mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return 4;
}
//设置标题
@Override
public CharSequence getPageTitle(int position) {
return tab.get(position);
}
});
}
}
ViewPager加载的Fragment
public class girlFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.girllayout,container, false);
return view;
}
}
FloatingActionButton的实现通过<android.support.design.widget.FloatingActionButton/>加入xml中设置位置以及src就可以实现,该控件继承自ImageButton可以通过setOnClickListener实现监听。
4)ActionBar上的返回键的实现:
public class BaseActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
//ActionBar下阴影消除
getSupportActionBar().setElevation(0);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
//给返回箭头添加响应事件,ActionBar中的方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
}
在BaseActivity中实现,继承本类的Activity均可有该功能。