黑马北京新闻项目连载(5)--->ViewPagerIndicator结合PagerAdapter使用
来源:互联网 发布:acfun离线缓存for mac 编辑:程序博客网 时间:2024/06/06 19:17
点击打开项目链接。。。
上篇是ViewPagerIndicator结合FragmentPagerAdapter 使用,这篇是ViewPagerIndicator结合PagerAdapter使用
上篇链接地址 ViewPagerIndicator初探使用(开源库的Git上的demo)
布局文件activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.viewpagerindicatordeafult.MainActivity" > <com.viewpagerindicator.TabPageIndicator android:id="@+id/indicator" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" /></LinearLayout>
MainActivity
package com.example.viewpagerindicator;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.View;import android.view.ViewGroup;import com.viewpagerindicator.TabPageIndicator;public class MainActivity extends Activity {// Tab栏的菜单数量--创建数据源private static final String[] CONTENT = new String[] { "Recent", "Artists","Albumssdfdsf", "Songs", "Playlsfsdfists" };private ArrayList<TabDetailPager> mDetailPagers = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 布局线性布局 上面TabPageIndicator 下面ViewPagersetContentView(R.layout.activity_main);// 获取ViewPager控件ViewPager pager = (ViewPager) findViewById(R.id.pager);mDetailPagers = new ArrayList<TabDetailPager>();for (int i = 0; i < CONTENT.length; i++) {mDetailPagers.add(new TabDetailPager(this, CONTENT[i]));}// 获取适配器GoogleMusicAdapter adapter = new GoogleMusicAdapter();// 设置适配器pager.setAdapter(adapter);// 获取indicator控件TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);// 固定用法indicator.setViewPager(pager);}class GoogleMusicAdapter extends PagerAdapter {@Overridepublic CharSequence getPageTitle(int position) {return CONTENT[position];}@Overridepublic int getCount() {return mDetailPagers.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);}@Overridepublic Object instantiateItem(ViewGroup container, int position) {TabDetailPager pager = mDetailPagers.get(position);container.addView(pager.mRootView);return pager.mRootView;}}}
TabDetailPager
package com.example.viewpagerindicator;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.TextView;import com.example.viewpagerindicator.domain.NewsData.NewsTabData;/** * 页签详情页 */public class TabDetailPager {public Activity mActivity;public View mRootView;// 根布局对象private String content;private TextView tvText;public TabDetailPager(Activity activity,String content) {mActivity = activity;this.content = content;mRootView = initViews();}private View initViews() {tvText = new TextView(mActivity);tvText.setLayoutParams(new LayoutParams(-1, -1));tvText.setTextColor(Color.RED);tvText.setTextSize(25);tvText.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL);tvText.setText(content);return tvText;}}
另外跟上篇博客一样,还是使用同样的布局,布局是可以自定义的
<activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/Theme.PageIndicatorDefaults" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
<resources> <style name="Theme.PageIndicatorDefaults" parent="android:Theme"> <item name="vpiTabPageIndicatorStyle">@style/Widget.TabPageIndicator</item> </style> <style name="Widget"> </style> <style name="Widget.TabPageIndicator" parent="Widget"> <item name="android:gravity">center</item> <item name="android:background">@drawable/vpi__tab_indicator</item> <item name="android:paddingLeft">22dip</item> <item name="android:paddingRight">22dip</item> <item name="android:paddingTop">12dp</item> <item name="android:paddingBottom">12dp</item> <item name="android:textAppearance">@style/TextAppearance.TabPageIndicator</item> <item name="android:textSize">12sp</item> <item name="android:maxLines">1</item> </style> <style name="TextAppearance.TabPageIndicator" parent="Widget"> <item name="android:textStyle">bold</item> <item name="android:textColor">@color/vpi__dark_theme</item> </style></resources>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 分为4种图片 --> <item android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/vpi__tab_unselected_holo" /> <item android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/vpi__tab_unselected_pressed_holo" /> <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/vpi__tab_selected_holo" /> <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/vpi__tab_selected_pressed_holo" /></selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#f00"/> <item android:state_selected="true" android:color="#f00"/> <item android:color="#fff"/></selector>
0 0
- 黑马北京新闻项目连载(5)--->ViewPagerIndicator结合PagerAdapter使用
- 黑马北京新闻项目连载(4)--->ViewPagerIndicator结合FragmentPagerAdapter(开源库的Git上的demo)
- 黑马北京新闻项目连载(1)--->引导界面
- 黑马北京新闻项目连载(7)--->图片轮播
- 黑马北京新闻项目连载(8)--->画片缓存
- 黑马北京新闻项目连载(2)--->侧滑菜单栏、主页面Fragment搭建
- 黑马北京新闻项目连载(3)--->Tab栏、侧栏页面完成
- 黑马北京新闻项目连载(6)--->Gson解析、刷新加载、WebView展现
- 使用ViewPagerIndicator结合ViewPager实现网易新闻客户端的Tab标签效果
- 使用viewpagerindicator框架模仿网易新闻客户端
- 智慧北京:ViewPagerIndicator使用的介绍
- 自定义viewpagerindicator和FragmentViewPager结合使用
- Android 使用Fragment,ViewPagerIndicator 仿网易新闻客户端Tab标签
- PagerAdapter使用
- ViewPagerIndicator使用
- 仿网易新闻的ViewpagerIndicator
- Android北京本地新闻客户端,初级练习项目
- Android 项目实战:智慧北京(黑马)
- 终于有人把O2O、C2C、B2B、B2C的区别讲透了
- 【山外智能车】【IAR】【编译问题】HardFault_Handler
- 移动IM开发学习<2>
- 多个对象的内存管理
- char data[0] 用法及意义
- 黑马北京新闻项目连载(5)--->ViewPagerIndicator结合PagerAdapter使用
- java实现文件加密解密
- 关于在惠普实习的感想(第一周)
- 关于在惠普实习(第二周到第四周)
- 2015北京网络赛 Boxes
- Unity中 Behavior Designer 行为树插件
- 开始iOS 7中自动布局教程(一)
- eclipse相关设置及常用快捷键
- 使用OnTouchListener实现屏蔽子控件的焦点响应