博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
viewpager的主界面
阅读量:4549 次
发布时间:2019-06-08

本文共 6249 字,大约阅读时间需要 20 分钟。

首先写个主布局

然后底部布局横向四个,每个上面一个img按钮,下面一个文字

设置一个头部吧

主文件设置

package com.second.rewrite;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.Window;import android.widget.ImageButton;import android.widget.LinearLayout;public class MainActivity extends Activity implements OnClickListener{    private ViewPager mViewPager;//声明    private PagerAdapter mAdapter;//实现滑动效果的    private List
mViews = new ArrayList
();//适配器 //初始化4个tab private LinearLayout mTab1; private LinearLayout mTab2; private LinearLayout mTab3; private LinearLayout mTab4; //初始化4个bt1 private ImageButton mTabIbt1; private ImageButton mTabIbt2; private ImageButton mTabIbt3; private ImageButton mTabIbt4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏 setContentView(R.layout.main); initView(); initEvent(); } private void initView() { mViewPager = (ViewPager) findViewById(R.id.id_viewpager); //tabs mTab1 = (LinearLayout) findViewById(R.id.id_tab1); mTab2 = (LinearLayout) findViewById(R.id.id_tab2); mTab3 = (LinearLayout) findViewById(R.id.id_tab3); mTab4 = (LinearLayout) findViewById(R.id.id_tab4); //imagebuttons mTabIbt1 = (ImageButton) findViewById(R.id.id_tab_ibt1); mTabIbt2 = (ImageButton) findViewById(R.id.id_tab_ibt2); mTabIbt3 = (ImageButton) findViewById(R.id.id_tab_ibt3); mTabIbt4 = (ImageButton) findViewById(R.id.id_tab_ibt4); //初始化布局 LayoutInflater mInflater = LayoutInflater.from(this);//类似于findid,用来找布局文件 View tab1 = mInflater.inflate(R.layout.tab1, null); View tab2 = mInflater.inflate(R.layout.tab2, null); View tab3 = mInflater.inflate(R.layout.tab3, null); View tab4 = mInflater.inflate(R.layout.tab4, null); //装载布局 mViews.add(tab1); mViews.add(tab2); mViews.add(tab3); mViews.add(tab4); mAdapter = new PagerAdapter() {
//滑动方法 //以下这两个方法自行创建,创建和销毁方法 @Override public void destroyItem(ViewGroup container, int position, Object object) {
//摧毁 container.removeView(mViews.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) {
//此处创建要返回,所以新建对象。 View view = mViews.get(position); container.addView(view); return view; } //以下两个为自带方法 @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0==arg1; } @Override public int getCount() {
//个数 return mViews.size(); } }; mViewPager.setAdapter(mAdapter); } private void initEvent() { //监听按钮转换页面 mTabIbt1.setOnClickListener(this); mTabIbt2.setOnClickListener(this); mTabIbt3.setOnClickListener(this); mTabIbt4 .setOnClickListener(this); //监听滑动事件,随着滑动,按钮进行转变 mViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { int currentItem = mViewPager.getCurrentItem();//拿到编号 resetImg(); switch (currentItem) { case 0: mTabIbt1.setImageResource(R.drawable.touch_app_select); break; case 1: mTabIbt2.setImageResource(R.drawable.toys_select); break; case 2: mTabIbt3.setImageResource(R.drawable.view_quilt_select); break; case 3: mTabIbt4.setImageResource(R.drawable.visibility_select); break; default: break; } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } @Override public void onClick(View arg0) {
//重写监听 resetImg();//先用正常图片 switch (arg0.getId()) { case R.id.id_tab_ibt1: mViewPager.setCurrentItem(0);//切换到第一个界面 mTabIbt1.setImageResource(R.drawable.touch_app_select);//选择之后替换图片 break; case R.id.id_tab_ibt2: mViewPager.setCurrentItem(1); mTabIbt2.setImageResource(R.drawable.toys_select); break; case R.id.id_tab_ibt3: mViewPager.setCurrentItem(2); mTabIbt3.setImageResource(R.drawable.view_quilt_select); break; case R.id.id_tab_ibt4: mViewPager.setCurrentItem(3); mTabIbt4.setImageResource(R.drawable.visibility_select); break; default: break; } } private void resetImg() {
//其实是换了图片,这里先用正常图片 mTabIbt1.setImageResource(R.drawable.touch_app); mTabIbt2.setImageResource(R.drawable.toys); mTabIbt3.setImageResource(R.drawable.view_quilt); mTabIbt4.setImageResource(R.drawable.visibility); }}

然后就是一个普通的主界面

转载于:https://www.cnblogs.com/webgavin/p/5774704.html

你可能感兴趣的文章
【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--请求处理结果适配篇(7/8)...
查看>>
CodeForces 731A Night at the Museum
查看>>
MySQL 删除数据库
查看>>
JavaScript 字符串(String) 对象
查看>>
How to use VisualSVN Server and TortoiseSVN to host your codes and control your codes' version
查看>>
微信小程序picker组件 - 省市二级联动
查看>>
Dynamics CRM 给视图配置安全角色
查看>>
Eclipse修改已存在的SVN地址
查看>>
C++ ACM基础
查看>>
(转)使用 python Matplotlib 库绘图
查看>>
进程/线程切换原则
查看>>
正则表达式语法
查看>>
20165301 2017-2018-2 《Java程序设计》第四周学习总结
查看>>
Vue的简单入门
查看>>
使用最快的方法计算2的16次方是多少?
查看>>
urllib 中的异常处理
查看>>
【SQL Server高可用性】高可用性概述
查看>>
通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
查看>>
SQL优化:重新编译存储过程和表
查看>>
PCB“有铅”工艺将何去何从?
查看>>