博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Material风格的应用(一)--AppBar TabLayout
阅读量:6973 次
发布时间:2019-06-27

本文共 3224 字,大约阅读时间需要 10 分钟。

hot3.png

打造Material风格的Android应用

开发环境:

  • JDK 8+
  • Android Studio 2.2.2

Themes And Colors

主题颜色值 res/values/colors.xml

#3F51B5
#303F9F
#FF4081

如此,添加一个Light主题风格的style res/values/styles.xml

使用 parent="Theme.AppCompat.Light.NoActionBar" 是在应用中去除ActionBar运行效果图

布局和动画

TabLayout

  • 添加 Toolbar 在res/layout/activity_main.xmlMainActivity.java中添加toolbar,这里使用CoordinatorLayout作为一个容器 里面会包含TabLayout FloatingActionButton Toolbar等,引入design的支持库
compile 'com.android.support:design:24.2.1'

activity_main.xml

MainActivity.java

Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);setSupportActionBar(toolbar);
  • 添加TabLayout
TabLayout tabLayout = (TabLayout)findViewById(R.id.tabs);tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));tabLayout.addTab(tabLayout.newTab().setText("Tab 2"));tabLayout.addTab(tabLayout.newTab().setText("Tab 3"));
  • 添加 Fragment 和 ViewPager 在 activity_main.xml中添加ViewPager

通过添加ViewPager和TabLayout联动,创建3个Fragment的类 ListContentFragment.java TileContentFragment.javaCardContentFragment.java

添加item_list.xml item_tile.xml item_card.xml

分别创建不同的Fragment文件和布局对应 ListContentFragment.java

public class ListContentFragment extends Fragment{  @Nullable  @Override  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {      View v = inflater.inflate(R.layout.item_list,null);      return v;  }}

TileContentFragment.java

public class TileContentFragment extends Fragment{  @Nullable  @Override  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {      return inflater.inflate(R.layout.item_tile,null);  }}

CardContentFragment.java

public class CardContentFragment extends Fragment{  @Nullable  @Override  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {      return inflater.inflate(R.layout.item_card,null);  }}

MainActivity.java中添加ViewPager

ViewPager viewPager = (ViewPager)findViewById(R.id.viewpager);setupViewPager(viewPager);private void setupViewPager(ViewPager viewPager){      Adapter adapter = new Adapter(getSupportFragmentManager());      adapter.addFragment(new ListContentFragment(),"List");      adapter.addFragment(new TileContentFragment(),"Tile");      adapter.addFragment(new CardContentFragment(),"Card");      viewPager.setAdapter(adapter);  }static class Adapter extends FragmentPagerAdapter{    private final List
fragmentList = new ArrayList<>(); private final List
fragmentTitle = new ArrayList<>(); public Adapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return fragmentList.get(position); } @Override public int getCount() { return fragmentList.size(); } public void addFragment(Fragment fragment,String title){ fragmentList.add(fragment); fragmentTitle.add(title); } @Override public CharSequence getPageTitle(int position) { return fragmentTitle.get(position); }}

转载于:https://my.oschina.net/coderminer/blog/787631

你可能感兴趣的文章
[宽度优先搜索] FZU-2150 Fire Game
查看>>
group by
查看>>
简单投票系统学到的一些东西
查看>>
简明 Vim 练级攻略(转载)
查看>>
ubuntu12.04下virtualbox访问usb
查看>>
android打电话,接电话,挂电话过程
查看>>
【LeanEAP.NET】精益企业应用平台实战----表格批量编辑与Undo/Redo功能实现
查看>>
从Excel中读取数据(python-xlrd)
查看>>
iframe显示高度自适应 兼容多浏览器
查看>>
Struts2 技术全总结 (正在更新)
查看>>
站在产品经理的角度看问题
查看>>
SVN的具体使用方法介绍(安装以及操作)
查看>>
P1064 金明的预算方案
查看>>
Zabbix监控平台3.2.4(一)搭建部署与概述
查看>>
系统升级与优化
查看>>
网络编程之urllib
查看>>
Simple Python Dictionary :)
查看>>
c语言程序设计第六次作业--循环结构(二)
查看>>
【转】WebView的JavaScript与本地代码三种交互方式
查看>>
xml转换为对象 微信接口
查看>>