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.模 ...
随机推荐
- feign接口调用异常的解决方向
1. consul: 检查调用方服务与被调用方服务是否在同一个consul; 2. swagger: 检查swagger注释是否清晰.恰当: 比如: @ApiImplicitParams(value ...
- Open SuSE中自定义的环境变量
针对与其它发行版本的Linux,网络上给出的添加环境变量的位置都是在/etc/profile文件中添加.在Open SuSE中也有/etc/profile文件,不过从该文件的前几行注释可以看出,官方建 ...
- centos7 卸载 jdk
################ jdk 的安装 ###########################参考:https://www.cnblogs.com/Dylansuns/p/6974272.h ...
- Node.js 程序应用
在打开cmd 控制台 输入 node 然后在cmd中 输入您想要的代码 加减乘除 算法.
- [phvia/firman] PHP多进程服务器模型中的惊群
[ 典型场景 ] 典型的多进程服务器模型是这样的,主进程绑定ip,监听port,fork几个子进程,子进程安装信号处理器,随后轮询资源描述符检查是否可读可写: 子进程的轮询又涉及到 IO复用,acce ...
- [PHP]误读支付宝接口可能引发的乌龙
------------------------------------------------------------------------------------ 之所以发现这个坑,源起项目中的 ...
- hdoj3709(数位dp)
题目链接:https://vjudge.net/problem/HDU-3709 题意:求出[l,r]中的平衡数,平衡数即存在一个中心点使得两边的力矩和相等. 思路:首先需要知道一个数最多只有一个中心 ...
- 错误:libstdc++.so.6: wrong ELF class
1.安装mysql的时候报错缺少GLIBCXX_3.4.15 2.按照网上的下载了libstdc++.so.6.0.17 放到/usr/lib64 下 删除之前的libstdc++.so.6的链接 重 ...
- Head First Servlets & JSP 学习笔记 第九章 —— 使用JSTL
JSTL1.1 不是JSP2.0规范的一部分!你能访问Servlet和JSP API 不意味着你能访问JSTL! 使用JSTL之前,需要将两个文件("jstl.jar" 和 &qu ...
- 微擎开发------day02
基本要素: 微擎系统数据库操作使用PDO兼容方式,参数绑定进行查询操作 (1) 数据表加上表前缀 $sql = "select * from ".tablename('users ...