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 = 0; i < 5; ++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(50);

        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>
时间: 2024-08-05 19:35:34

TabLoaout简单框架的相关文章

缓冲运动之框架開始一级简单框架实例

***********************缓冲运动[框架開始]-1.html********************************************* <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"

缓冲运动之框架开始一级简单框架实例

***********************缓冲运动[框架开始]-1.html********************************************* <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"

IOS 支付宝-五福简单框架实现-线性滚动(UICollectionView)

猴年支付宝可算是给大家一个很好的惊喜,刺激.大家都在为敬业福而四处奔波.可是到最后也没有几个得到敬业福德,就像我.不知道大家有没有观察,五福界面的滚动是一个很好的设计.在这里,给大家带来简单的滚动实现,首先看一下实现效果. 通过观察不难发现,有很多地方并不是那么容易想出来的,对于篇随笔,感兴趣可以查查相关资料,我就不尽行过多说明,(主要是开考文字,不好说明??). 献出代码,请收下. // // ViewController.m // CX 支付宝-五福简单框架实现-线性滚动(UICollect

Java回顾:用一个Demo来说明继承抽象类和实现接口的简单框架模型

大家都知道,在java应用开发中,要"面向接口编程". 那么什么是接口?接口有什么作用?接口如何使用?我们一起来回顾一下. [声明]欢迎转载,但请保留文章原始出处:http://blog.csdn.net/yelangjueqi/article/details/44701369 1,接口回顾: 1.1,Java中接口的概念 在Java中接口是一种特殊的抽象类,跟一般的抽象类相比,接口里面的所有方法都是抽象方法,接口里面的所有属性都是常量.也就是说,接口里面只有方法定义而没有任何方法实现

接口自动化简单框架

接口自动化简单框架 一.自动化测试分类: 1.数据驱动:根据数据(读取EXCEL数据)来测试 2.代码驱动:测试用例都是代码,通过读取代码测试 3.关键字驱动:UI自动化,根据封装好的工具,输入关键字测试,有点傻瓜式测试 点击 --> .click() 下一步 提交 --> .submit() { '点击':click() '提交':submit() } 二.自动化框架 自动化框架:可以理解为工具的集合.在日常工作中根据需要实现某些功能,封装起来.或结合其他自动化工具. 三.搭建数据驱动自动化

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

引子:总共使用3个.java文件,建立一个简单界面编程的框架. 第1个文件:NotHelloWorldComponent.java //NotHelloWorldComponent.java 1 import java.awt.*; 2 import java.awt.geom.*; 3 import javax.swing.*; 4 5 public class NotHelloWorldComponent extends JComponent { 6 public static final

MySql+webService cxf+json 简单框架(转)

http://blog.csdn.net/ice343241993/article/details/22037829 这个Demo是非常简单的一个框架.如果您需要开发的话完全可以按照这个大框架的基础上实现您的各种方法.新手可以看一下.本demo的代码书写规范完全是本人自己的习惯.服务端是:webService+cxf+Json, 客户端是android. 服务器端代码: 包结构图: 1.1javaBean的部分没有什么可说的,上代码: CommandBean [java] view plainc

跟我学框架开发-简单框架蓝图

以下是一个简单早期的框架结构图,到目前为上已经作了太多的调整与进化.但基本的构件与原理不变: 个人觉得有以下几点: 1.要有基础框架建模平台,这是构件化的实现基础,也是本框架最重要的部分 2.全接口化交互,统一数据报文格式,内外部均全采用接口化数据交互 3.要进行多种分布式服务切割与API封装 4.强调数据路由功能,统一的数据总线交互模式,方便作数据监控.拦截.分发.切换 5.数据库与缓存(或MongoDB) 一键切换启用机制 6.数据库部分也是重中之重,后期再细讲

java 简单框架的运用

Struts Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的. Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关:  1.模型(Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的.  2.视图(View),View是由与