TabLoaout简单框架
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView; import com.bwie.newsinfo.fragment.Fragment1; import java.util.ArrayList;
import java.util.List; public class HomeActivity extends BaseActivity implements AdapterView.OnItemClickListener { private DrawerLayout drawerLayout;
private ListView leftDrawer;
private List<String> list = new ArrayList<String>();
private ArrayAdapter<String> adapter;
private ActionBarDrawerToggle toggle;
private final String[] mTitles = new String[]{"推荐","热点","北京","科技","军事","视频","社会"};
private ViewPager vp; @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initData();
initView(); } /**
* 初始化数据
*/
private void initData() { for (int i = ; i < ; ++i) {
list.add("泡妞0" + i);
} } /**
* 初始化View
*/
private void initView() { drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
leftDrawer = (ListView) findViewById(R.id.leftDrawer);
//初始化ActionBar
//参数1:上下文
//参数2:抽屉
//参数3:打开抽屉的描述
//参数4:关闭抽屉的描述
toggle = new ActionBarDrawerToggle(this,drawerLayout, R.string.openDrawer,R.string.closeDrawer);
//设置状态同步
toggle.syncState();
//设置抽屉打开关闭监听
drawerLayout.addDrawerListener(toggle);
//设置适配器
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
leftDrawer.setAdapter(adapter);
leftDrawer.setOnItemClickListener(this); //找到标签布局控件
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); for (String str : mTitles)
{
//更具标签数生成标签
tabLayout.addTab(tabLayout.newTab().setText(str));
} //TabLayout关联ViewPager
vp = (ViewPager) findViewById(R.id.vp);
vp.setAdapter(new MyFragmentAdapter(getSupportFragmentManager()));
//让TabLayout发生关联
tabLayout.setupWithViewPager(vp); } //重写该方法,监听actionbar 条目监听(箭头、三个横线)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//如果抽屉打开,点击按钮,就会关闭,反之亦然
return toggle.onOptionsItemSelected(item) | super.onOptionsItemSelected(item);
} @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //关闭抽屉
drawerLayout.closeDrawer(leftDrawer);
} class MyFragmentAdapter extends FragmentPagerAdapter{ public MyFragmentAdapter(FragmentManager fm) {
super(fm);
} @Override
public Fragment getItem(int position) { return Fragment1.newInstance(mTitles[position]);
} @Override
public int getCount() {
return mTitles.length;
} //重写该方法,显示标签字体 bug
@Override
public CharSequence getPageTitle(int position) {
return mTitles[position];
}
} }
标题栏
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity; public class BaseActivity extends AppCompatActivity { @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//隐藏标题栏
//getSupportActionBar().hide();
//标题栏
ActionBar actionBar = getSupportActionBar();
//显示箭头
actionBar.setDisplayHomeAsUpEnabled(true); }
}
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView; public class Fragment1 extends Fragment { private static final String PAGE_TITLE = "PAGE_TITLE";
private String title; public static Fragment1 newInstance(String title){ Bundle bundle = new Bundle();
bundle.putString(PAGE_TITLE,title);
Fragment1 fragment1 = new Fragment1();
fragment1.setArguments(bundle);
return fragment1; } @Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //当Fragemnt一旦被创建,我就可以接受对方传递过来的值
title = getArguments().getString(PAGE_TITLE); } @Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { TextView textView = new TextView(getActivity());
textView.setText(title);
textView.setTextSize(); return textView;
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/draw"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="com.bwie.lianxi23.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:id="@+id/tb"
app:tabMode="scrollable"
></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp"
></android.support.v4.view.ViewPager>
</LinearLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:id="@+id/lv"
android:background="@color/colorAccent"
></ListView>
</android.support.v4.widget.DrawerLayout>
TabLoaout简单框架的更多相关文章
- NHIBERNATE的简单框架的设计
NHIBERNATE的简单框架的设计 上次的 NHibernate的Session管理策略和NHibernateHelper 发布并提供下载,给NHibernate刚入门的同学们带来很多便利. 最近有 ...
- spring的了解以及简单框架的搭建
了解spring: Spring是一个开源的控制反转(Inversion of Controller)和面向切面(AOP)的框架,目的是为了简化开发. IOC(控制反转): public class ...
- Java反射(六)纯面向接口编程的简单框架实践
我们知道在使用MyBatis开发时,只需要添加DAO接口和对应的映射XML文件,不需要写DAO的实现类,其实底层是通过动态代理实现. 本文将使用前几篇文章的知识点实现一个纯面向接口编程的简单框架,与M ...
- 浅析MyBatis(二):手写一个自己的MyBatis简单框架
在上一篇文章中,我们由一个快速案例剖析了 MyBatis 的整体架构与整体运行流程,在本篇文章中笔者会根据 MyBatis 的运行流程手写一个自定义 MyBatis 简单框架,在实践中加深对 MyBa ...
- Java界面编程-建立一个可以画出图形的简单框架
引子:总共使用3个.java文件,建立一个简单界面编程的框架. 第1个文件:NotHelloWorldComponent.java //NotHelloWorldComponent.java 1 im ...
- java简单框架设计
设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...
- SpringMVC+Thymeleaf +HTML的简单框架
一.问题 项目中需要公众号开发,移动端使用的是H5,但是如果不用前端框架的话,只能考虑JS前端用ajax解析JSON字符串了.今天我们就简单的说下前端框架Thymeleaf如何解决这个问题的: 二.开 ...
- Pyspider爬虫简单框架——链家网
pyspider 目录 pyspider简单介绍 pyspider的使用 实战 pyspider简单介绍 一个国人编写的强大的网络爬虫系统并带有强大的WebUI.采用Python语言编写,分布式架构, ...
- java 简单框架的运用
Struts Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的. Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关: 1.模 ...
随机推荐
- Django模板语言相关内容 Djan
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
- threading 多线程类继承方式调用
import threading #线程import time class Work(threading.Thread): def __init__(self,n): threading.Thread ...
- git克隆远程仓库的时候断电了,使用git-fetch断点续传
今天下载tensorflow serving 模型,但是因为主机电源线太长了,不知是我自己搞的还是同事,断电了都, 网速捉急,下载了挺长时间的,一看,git clone 到中途竟然断电,不过查看,还好 ...
- CAFE: a computational tool for the study of gene family evolution
1.摘要 摘要:我们提出了CAFE(计算分析基因家族进化),这是一个统计分析基因家族进化规模的工具.它使用随机的出生和死亡过程来模拟一个系统发育过程中基因家族大小的进化.对于一个特定的系统发育树,并给 ...
- EOS踩坑记
[EOS踩坑记] 1.每个account只能更新自己的contract,即使两个account的秘钥相同,也不允许. 如下,使用alice的权限来更新james的contract.会返回 Missin ...
- python 处理时间 datetime 三板斧
import datetime1)#str -> datetime对象,(datetime对象之间可加减,date[0]为str) datetime.datetime.strptime(date ...
- 深度学习中Dropout原理解析
1. Dropout简介 1.1 Dropout出现的原因 在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象. 在训练神经网络的时候经常会遇到过拟合的问题 ...
- as3.0 嵌入字体的用法
var txt:TextField = new TextField();//创建文本 txt.embedFonts=true;//确定嵌入字体 var font:Font=new MyFont();/ ...
- Hands-On Unity 2018 x 移动游戏开发教程
Hands-On Unity 2018 x Game Development for Mobile 使用Unity 2018.2创建具有出色游戏功能的精彩游戏 想学习在Unity制作游戏,但不知道 ...
- fortitoken
1.token状态为error,且不能分配给用户使用 解决: 关联有User的token状态是error的原因是:用户一直并未使用.