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简单框架的更多相关文章

  1. NHIBERNATE的简单框架的设计

    NHIBERNATE的简单框架的设计 上次的 NHibernate的Session管理策略和NHibernateHelper 发布并提供下载,给NHibernate刚入门的同学们带来很多便利. 最近有 ...

  2. spring的了解以及简单框架的搭建

    了解spring: Spring是一个开源的控制反转(Inversion of Controller)和面向切面(AOP)的框架,目的是为了简化开发. IOC(控制反转): public class ...

  3. Java反射(六)纯面向接口编程的简单框架实践

    我们知道在使用MyBatis开发时,只需要添加DAO接口和对应的映射XML文件,不需要写DAO的实现类,其实底层是通过动态代理实现. 本文将使用前几篇文章的知识点实现一个纯面向接口编程的简单框架,与M ...

  4. 浅析MyBatis(二):手写一个自己的MyBatis简单框架

    在上一篇文章中,我们由一个快速案例剖析了 MyBatis 的整体架构与整体运行流程,在本篇文章中笔者会根据 MyBatis 的运行流程手写一个自定义 MyBatis 简单框架,在实践中加深对 MyBa ...

  5. Java界面编程-建立一个可以画出图形的简单框架

    引子:总共使用3个.java文件,建立一个简单界面编程的框架. 第1个文件:NotHelloWorldComponent.java //NotHelloWorldComponent.java 1 im ...

  6. java简单框架设计

    设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...

  7. SpringMVC+Thymeleaf +HTML的简单框架

    一.问题 项目中需要公众号开发,移动端使用的是H5,但是如果不用前端框架的话,只能考虑JS前端用ajax解析JSON字符串了.今天我们就简单的说下前端框架Thymeleaf如何解决这个问题的: 二.开 ...

  8. Pyspider爬虫简单框架——链家网

    pyspider 目录 pyspider简单介绍 pyspider的使用 实战 pyspider简单介绍 一个国人编写的强大的网络爬虫系统并带有强大的WebUI.采用Python语言编写,分布式架构, ...

  9. java 简单框架的运用

    Struts Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的. Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关:  1.模 ...

随机推荐

  1. redis排序

    1.sort 排序最常见的是sort命令,可以对列表或者有序集合排序,最简单的排序方式如下: > lpush list (integer) > lpush list (integer) & ...

  2. 网页导出PDF文件

    转自-----出道诗人 var downPdf = document.getElementById("exportToPdf"); downPdf.onclick = functi ...

  3. thinkphp5 Exception类重定义

    重点定义自己的错误信息和错误码: 在TP5的配置文件中有下面一段 // 异常处理handle类 留空使用 \think\exception\Handle 'exception_handle' => ...

  4. 装饰器 -- 函数装饰器(tornado异常响应装饰器)

    # 值可变,每次使用需要重新赋值 ERR_RESP_TEMPLATE = {"state": "FAILED", "error": None ...

  5. jqGrid基本用法与示例

    转自:https://chuanlu.iteye.com/blog/1953544 一.jqGrid的基本用法 1.html页面 <!DOCTYPE html PUBLIC "-//W ...

  6. Linux shell : 管道 |

    概念 意义 理解 用法 返回值 PIPESTATUS An array variable (see Arrays) containing a list of exit status values fr ...

  7. js方法用来获取路径传参上所带的参数

    //js方法用来获取路径传参上所带的参数 function GetQueryString(param) { var reg = new RegExp("(^|&)" + p ...

  8. spring boot+kafka整合

    springboot版本是2.0.4 首先,在maven中引入spring-kafka的jar包 <dependency> <groupId>org.springframewo ...

  9. ansible自动化运维详细教程及playbook详解

    前言 当下有许多的运维自动化工具( 配置管理 ),例如:Ansible.SaltStack.Puppet.Fabric 等. Ansible 一种集成 IT 系统的配置管理.应用部署.执行特定任务的开 ...

  10. JAVA中的配置文件XML

    一:概念 1.XML  Extensible markup Language 可拓展标记语言 2.功能:存储数据(配置文件,在网络中传输数据) 3.html和xml的区别 3.1xml标记全是自定义的 ...