tabpageindacator与fragment的应用
来源:互联网 发布:jsp调用java显示图片 编辑:程序博客网 时间:2024/06/03 08:44
我们手机上常会看见各种各样的导航,列入今日头条上面的,还有uc浏览器上面的新闻类别等,下面就跟大家分享一下关于指示器的应用
首先在工程中导入一个library工程,然后与自己新建的项目进行关联,右击—-properties—Android—-add
在导入的过程中可能出现错误,由于v4包冲突,我们需要将两个包里的v4一致
package com.bawei.practice;import com.viewpagerindicator.TabPageIndicator;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.support.v7.app.ActionBarActivity;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;public class MainActivity extends FragmentActivity { TabPageIndicator tIndicator; ViewPager viewPager; String titlename[]={"资讯","热点","博客","推荐"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 tIndicator=(TabPageIndicator) findViewById(R.id.tabindicator); viewPager=(ViewPager) findViewById(R.id.viewpager); indicator(); } private void indicator() { viewPager.setAdapter(new Mypageadapter(getSupportFragmentManager(),titlename)); tIndicator.setViewPager(viewPager); tIndicator.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { // TODO Auto-generated method stub } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } }); }}
上面是主activity里面的代码
package com.bawei.practice;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;public class Mypageadapter extends FragmentPagerAdapter { String title[]={"news_list","blog_list","news_list","blog_list"}; FragmentManager fm; String[] titlename; public Mypageadapter(FragmentManager fm,String[] titlename) { super(fm); // TODO Auto-generated constructor stub this.fm=fm; this.titlename=titlename; } @Override public Fragment getItem(int arg0) { F1 f1=new F1(); Bundle bundle=new Bundle(); bundle.putString("name", title[arg0]); f1.setArguments(bundle); return f1; } @Override public int getCount() { // TODO Auto-generated method stub return titlename.length; } @Override public CharSequence getPageTitle(int position) { return titlename[position]; }}
package com.bawei.practice;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import com.bawei.bean.News;import android.content.Context;import android.support.v4.app.FragmentActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class Mylistadapter extends BaseAdapter{ Context context; ArrayList<News> list; public Mylistadapter(Context context, ArrayList<News> list) { // TODO Auto-generated constructor stub this.context=context; this.list=list; } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view=View.inflate(context, R.layout.list_item, null); TextView tvtitle=(TextView) view.findViewById(R.id.tv_title); TextView tvbody=(TextView) view.findViewById(R.id.tv_body); TextView tvtime=(TextView) view.findViewById(R.id.tv_time); News news = list.get(position); tvtitle.setText(news.title); tvbody.setText(news.body); SimpleDateFormat sDateFormat=new SimpleDateFormat("yy-MM-dd-hh-mm-ss"); String format = sDateFormat.format(new Date(System.currentTimeMillis())); tvtime.setText(format); return view; }}注意在到代码的过程中 还要对上面的导航设置style主要有两个图片 两个selector还要复制里面的style 更改清单文件中的themeselector_tabtext.xml
tab_indicator.xml
还有values目录下的style添加下面的这些代码
<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">8dp</item> <item name="android:showDividers">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>
“`
清单文件中的 application下的theme改为 @style/StyledIndicators
0 0
- tabpageindacator与fragment的应用
- Fragment与ViewPager嵌套的简单应用
- Fragment的应用与了解(一)
- Fragment的应用与了解(二)
- 兼顾屏幕分辨率的应用---Activity与Fragment的交互
- Fragment应用的介绍
- Fragment应用的介绍
- Fragment的相关应用
- Fragment的应用
- Fragment的基本应用
- Fragment的应用知识点
- Fragment的基本应用
- Fragment的基本应用
- Fragment的应用
- android Fragment与ViewPager,自画指示器的一个应用
- Activity与Fragment,以及Fragment与Fragment之间的数据通讯
- Activity与Fragment,Fragment与Fragment之间的通信
- Android中Fragment的应用
- URAL 2069 Hard Rock(思路)
- vijos1334 NASA的食物计划
- MatLab建模学习笔记14——K-Means聚类算法
- 20160729------JAVA基础语法【for循环、猜数字游戏】
- 浙大PATj甲级 1048
- tabpageindacator与fragment的应用
- C++建立动态二维数组
- iOS-initWithNibName/awakeFromNib/initWithCoder 区别
- android背景设置报错 <item> tag requires a 'drawable' attribute or child tag defining a drawable
- AOJ 351 rmq或 基础线段树 求解
- 387.leetcode First Unique Character in a String(easy)[统计字符串字符次数]
- 杭电2091空心三角形
- python装饰器的学习
- Python3爬虫学习笔记2.1——爬文字-糗事百科