第一节总结

一、 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均可有该功能。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值