利用HorizontalScrollView加Viewpager实现多个的导航标题栏
来源:互联网 发布:怎样提升淘宝等级 编辑:程序博客网 时间:2024/05/29 05:54
小弟刚刚学安卓半年多,做一个东西时需要可滚动的导航标题栏,找不到原版的Demo,无奈根据自己的理解写了一个,效果不是很好,但是勉强可以用,有不明白的大家提一下,如果大家有好的意见或者谁有效果更好的推荐一下,大家一起学习。其中的横向滚动条是自己定义的有一个反弹的效果,大家不要那效果的话,可以用自己定义的。ps:第一次写博客,亦不知道该怎么介绍demo,也不知道该写些什么大家见谅啊
主Activity。那个
package com.example.pagerdemo;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.Display;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.WindowManager;import android.widget.TextView;import com.example.view.MyScrollView;public class MainActivity extends Activity implements OnClickListener{private List<View> data;private TextView[] tv;private com.example.view.MyScrollView sc;private ViewPager viewpager;private PagerAdapter pAdapter;private int screenWidth;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();viewpager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {// TODO Auto-generated method stubfor(int i=0;i<tv.length;i++){tv[i].setTextSize(15);tv[i].setBackgroundResource(0);}tv[arg0].setTextSize(18);tv[arg0].setBackgroundResource(R.drawable.san_03);if(arg0>=4){sc.scrollBy((int) (0.25*screenWidth), 0);}else if(arg0<3){sc.scrollBy(-(int) (0.25*screenWidth), 0);}}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}});}private void init(){tv=new TextView[7];tv[0]=(TextView) findViewById(R.id.tv_dec_bar1);tv[1]=(TextView) findViewById(R.id.tv_dec_bar2);tv[2]=(TextView) findViewById(R.id.tv_dec_bar3);tv[3]=(TextView) findViewById(R.id.tv_dec_bar4);tv[4]=(TextView) findViewById(R.id.tv_dec_bar5);tv[5]=(TextView) findViewById(R.id.tv_dec_bar6);tv[6]=(TextView) findViewById(R.id.tv_dec_bar7);sc=(MyScrollView) findViewById(R.id.sc_dec);viewpager=(ViewPager) findViewById(R.id.viewpager1);data=new ArrayList<View>();data.add(LayoutInflater.from(this).inflate(R.layout.viewpager1, null));data.add(LayoutInflater.from(this).inflate(R.layout.viewpager2, null));data.add(LayoutInflater.from(this).inflate(R.layout.viewpager3, null));data.add(LayoutInflater.from(this).inflate(R.layout.viewpager1, null));data.add(LayoutInflater.from(this).inflate(R.layout.viewpager2, null));data.add(LayoutInflater.from(this).inflate(R.layout.viewpager3, null));data.add(LayoutInflater.from(this).inflate(R.layout.viewpager1, null));pAdapter=new MyViewPagerAdapter(MainActivity.this, data);viewpager.setAdapter(pAdapter);//获得屏宽WindowManager windowManager = getWindowManager();Display display = windowManager.getDefaultDisplay();screenWidth = display.getWidth();}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubfor(int i=0;i<tv.length;i++){if(v==tv[i]){viewpager.setCurrentItem(i);}}}}
Demo的源码我放到下载页了http://download.csdn.net/detail/jiangchao5411/6346361
- 利用HorizontalScrollView加Viewpager实现多个的导航标题栏
- 底部导航栏:利用viewpager实现Android底部标题栏
- 底部导航栏:利用viewpager实现Android底部标题栏
- ViewPager的实现:通过HorizontalScrollView
- ViewPager的实现:通过HorizontalScrollView
- Android ViewPager+HorizontalScrollView实现标题栏滑动(腾讯新闻)
- ViewPager和Fragment结合,利用(HorizontalScrollView)实现指示器与ViewPager同时滑动的动态效果
- ViewPager加小圆点实现第一次安装的导航
- 利用viewPager实现导航界面
- android中HorizontalScrollView实现viewpager的效果
- HorizontalScrollView布局加底部导航
- 超简单的ViewPager导航栏联动实现后记--当标题栏条目很多时
- Android 实现横向标题栏滚动效果(HorizontalScrollView + GridView + Viewpager + 自定义适配器)
- 利用ViewPager、PagerTabStrip实现滚动导航
- 利用RadioGroup + ViewPager + Fragment实现书签导航
- 导航栏联动效果( HorizontalScrollView+ViewPager)
- ViewPager + HorizontalScrollView 实现可滚动的标签栏
- 实现HorizontalScrollView随ViewPager滚动的简易方法
- Your build settings specify a provisioning profile with the UUID, no provisioning profile was found
- 排序算法--插入排序(直接插入排序、希尔排序)Java实现
- 迭代法解线性方程
- POJ 2069 super star(三维点集最小圆覆盖 模拟退火)
- Android 中关于Cursor类的介绍
- 利用HorizontalScrollView加Viewpager实现多个的导航标题栏
- 叉姐的魔法训练(第一课)---- 初级魔法练习
- gcc 编译动态库和静态库
- linux小实验(5)---条件变量与互斥量
- jieba 分词源代码研读(1)
- 排序算法--归并排序Java实现 .
- DOM
- GUI 图形界面
- 长沙网预赛 2013 C Color Representation Conversion BY hyoga