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.模 ...
随机推荐
- 用python探索和分析网络数据
Edited by Markdown Refered from: John Ladd, Jessica Otis, Christopher N. Warren, and Scott Weingart, ...
- 【学习】DataFrame&Series类【pandas】
参考链接:http://blog.csdn.net/yhb315279058/article/details/50226027 DataFrame类: DataFrame有四个重要的属性: index ...
- [Linux] traceroute 路由跟踪指令用例
traceroute是用来跟踪数据包到达网络主机所经过的路由工具.在Linux系统中,称之为traceroute,在Windows中称为tracert. 一条路径上的每个设备traceroute要测3 ...
- Redux的梳理
学习Redux之前,我了解了它需要去解决什么问题: 用户使用方式复杂 不同身份不同使用方式 多个用户可以协作 与服务器大量交互,或者使用websocket 视图数据从多个来源获取 共享组件状态 组件之 ...
- git push以后GitHub上文件夹灰色 不可点击
1.删除本地文件夹里的 .git .gitignore文件 2.如果没成功,就把文件名改下,应该是有缓存,改完名后再add/commit/push
- Python面向对象编程(上)
Python不仅支持面向过程编程,同时也支持面向对象编程.面向工程就是分析解决问题所需的步骤,然后用函数把这些步骤逐一实现,使用的时候再一个个调用函数就可以.面向对象则是把解决的问题按照一定规则划分为 ...
- TCP/UDP 常用端口列表
计算机之间依照互联网传输层TCP/IP协议不同的协议通信,都有不同的对应端口.所以,利用短信(datagram)的UDP,所采用的端口号码不一定和采用TCP的端口号码一样.以下为两种通信协议的端口列表 ...
- 用归并排序或树状数组求逆序对数量 poj2299
题目链接:https://vjudge.net/problem/POJ-2299 推荐讲解树状数组的博客:https://blog.csdn.net/int64ago/article/details/ ...
- c#: Label控件加入AutoHeight属性
此功能在界面布局中颇为实用,录代码以记之: public class LabelEx : Label { private bool autoHeight = true; [DefaultValue(t ...
- 为了应对异常情况,提供最原始的python第三方库的安装方法:手动安装。往往是Windows用户需要用到这种方法。
进入pypi.python.org,搜索你要安装的库的名字,这时候有3中可能: 第一种是exe文件,这种最方便,下载满足你的电脑系统和python环境的对应的exe,再一路点击next就可以安装. 第 ...