第一节总结
来源:互联网 发布:复旦大学大数据试验场 编辑:程序博客网 时间:2024/06/06 10:40
一、 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
- 第一节总结
- oc第一节知识总结
- OC第一节总结
- OC第一节总结
- HTML 第一节 代码与总结
- 第一节
- 第一节
- 第一节
- 第一节
- 第一节
- JavaWEB开发-国际化 --->张国亮总结第一节
- CS-50第一节及第二节总结
- 第一节CSDN课总结之网页制作(新手一学就会)
- 会话管理之Cookie--->张国亮--->总结心得第一节
- java学习第一节知识点总结(配置环境等)
- 2.Android基础总结.doc(第一节、基本知识了解)
- Android studio 打包混淆报错总结(第一节)
- 第一节 IContextMenu
- L
- 53. Maximum Subarray
- JFinal后台权限项目启动时自动生成
- css的背景及背景图片的属性
- C++学习之路(2)---两招让你成为牛X的T型人才
- 第一节总结
- 七牛云-上传策略常用示例
- 219. Contains Duplicate II
- 最小公倍数
- 关闭CPU C State 解决卡屏死机问题
- 单例与线程安全
- GraphQL学习笔记(GraphQL + Spring boot demo) part 2
- 数据库连接池原理和使用
- D3 笔记三:线性比例尺、序数比例尺、domain()、range()