Viewpagerindicator 头部带滑动
来源:互联网 发布:怎样应聘淘宝模特 编辑:程序博客网 时间:2024/05/18 01:04
首先导入对应的 library
MainActivity 代码
public class MainActivity extends FragmentActivity { private TabPageIndicator viewPagerIndicator; private ViewPager viewpager; /** * Tab标题 */ private static final String[] TITLE = new String[] { "头条", "房产", "另一面", "女人", "财经", "数码", "情感", "科技" }; private List<Fragment> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); viewPagerIndicator = (TabPageIndicator)findViewById(R.id.viewPagerIndicator); viewpager=(ViewPager)findViewById(R.id.viewPager); //添加fragment addFragment(); viewpager.setAdapter(new MyFragmentAdapter(getSupportFragmentManager(), list, TITLE)); viewPagerIndicator.setViewPager(viewpager); } private void addFragment() { list = new ArrayList<Fragment>(); for (int i = 0; i < TITLE.length; i++) { MyFragment fragment=new MyFragment(); Bundle bundle=new Bundle(); bundle.putString("path", TITLE[i]+""); fragment.setArguments(bundle); list.add(fragment); } }}
MyFragment 代码
public class MyFragment extends Fragment { private View v; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { v = inflater.inflate(R.layout.fragment_item, container, false); return v; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub TextView textView = (TextView) v.findViewById(R.id.textView1); Bundle bundle = getArguments(); String str = bundle.getString("path"); textView.setText(str); super.onActivityCreated(savedInstanceState); }}
MyFragmentAdapter 适配器
public class MyFragmentAdapter extends FragmentPagerAdapter{ List<Fragment> list; String[] title; public MyFragmentAdapter(FragmentManager fm, List<Fragment> list, String[] title) { super(fm); this.list = list; this.title = title; } @Override public Fragment getItem(int arg0) { // TODO Auto-generated method stub return list.get(arg0); } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return title[position]; }}
activity_main.xml 的布局文件
<RelativeLayout 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" tools:context="${relativePackage}.${activityClass}" > <com.viewpagerindicator.TabPageIndicator android:id="@+id/viewPagerIndicator" android:layout_width="match_parent" android:layout_height="wrap_content" > </com.viewpagerindicator.TabPageIndicator> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/viewPagerIndicator" > </android.support.v4.view.ViewPager></RelativeLayout>
fragment_item.xml 布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /></LinearLayout>
styles.xml 样式
<style name="StyledIndicators" parent="@android:style/Theme.Light"> <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item> </style> <style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator"> <item name="android:background">@drawable/tab_indicator</item> <item name="android:textAppearance">@style/CustomTabPageIndicator.Text</item> <item name="android:textSize">14sp</item> <item name="android:dividerPadding" tools:targetApi="11">8dp</item> <item name="android:showDividers" tools:targetApi="11">middle</item> <item name="android:paddingLeft">10dp</item> <item name="android:paddingRight">10dp</item> <item name="android:fadingEdge">horizontal</item> <item name="android:fadingEdgeLength">8dp</item> </style> <style name="CustomTabPageIndicator.Text" parent="android:TextAppearance.Medium"> <item name="android:typeface">monospace</item> <item name="android:textColor">@drawable/selector_tabtext</item> </style>
drawable 选择字体变色 selector_tabtext.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="#EE2C2C" /> <item android:state_pressed="true" android:color="#EE2C2C" /> <item android:state_focused="true" android:color="#EE2C2C" /> <item android:color="@android:color/black"/></selector>
drawable 选择字体变色 tab_indicator.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" /> <item android:state_selected="false" android:state_pressed="true" android:drawable="@android:color/transparent" /> <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/base_tabpager_indicator_selected" /> <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/base_tabpager_indicator_selected" /></selector>变色所需图片(http://img.blog.csdn.net/20161024165452514)
最后 切记AndroidManifest.xml 中添加的样式
android:theme="@style/StyledIndicators"
0 0
- Viewpagerindicator 头部带滑动
- 自定义头部ViewPagerIndicator
- 滑动菜单 ViewPagerIndicator
- 可滑动的viewpagerIndicator
- android Listview头部带控件滑动距离的判断
- Android滑动头部控件
- 返回头部滑动动画
- HorizonScrollView完成头部滑动
- HorizontalScrollView头部滑动
- HeadChooseView头部视图滑动
- 滑动头部隐藏
- Android之ViewpagerIndicator滑动导航栏
- 一个简单的可滑动ViewpagerIndicator
- tableView头部不动,cell滑动
- 返回头部滑动动画[KoalaShane]
- Android滑动改变头部效果
- H5开发头部滑动导航
- ViewPagerIndicator
- Linux下chkconfig命令详解
- JIRAjira安装
- JSTL配置问题:According to TLD or attribute directive in tag file
- EF System.NotSupportedException
- INNER JOIN连接两个表、三个表、五个表的SQL语句
- Viewpagerindicator 头部带滑动
- 理解离散傅立叶变换(二. 实数形式离散傅立叶变换)
- 检测遗留问题
- range和xrange
- Linux下安装星际翻译
- 虚惊一场——VirtualBox双击没反应
- 网络的几种存储方式:DAS、NAS、SAN、ISCSI的区别
- Android Studio 百度地图 230错误 Scode码校验失败
- LeetCode 220 Contains Duplicate III