博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ViewPageIndicator--仿网易的使用
阅读量:5079 次
发布时间:2019-06-12

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

仿微信(网易的界面)

第一步: AndroidManifest.xml 的配置

//定义了 一些样式

  样式

        

  选择器selector_tabtext.xml  和tab_indicator.xml

     

//selector_tabtext
//tab_indicator

 

第二步 :class MainActivity extends FragmentActivity

/**     * Tab标题     */    private static final String[] TITLE = new String[] { "头条", "房产", "另一面"                                                         };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                //ViewPager的adapter        FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager());        ViewPager pager = (ViewPager)findViewById(R.id.pager);        pager.setAdapter(adapter);   //viewpage设置值        //实例化TabPageIndicator然后设置ViewPager与之关联        TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);        indicator.setViewPager(pager);  //下标 绑定 page                //如果我们要对ViewPager设置监听,用indicator设置就行了        indicator.setOnPageChangeListener(new OnPageChangeListener() {                        @Override            public void onPageSelected(int arg0) {                Toast.makeText(getApplicationContext(), TITLE[arg0], Toast.LENGTH_SHORT).show();            }                        @Override            public void onPageScrolled(int arg0, float arg1, int arg2) {                            }                        @Override            public void onPageScrollStateChanged(int arg0) {                            }        });            }        /**     * ViewPager适配器     * @author len     *     */    class TabPageIndicatorAdapter extends FragmentPagerAdapter {        public TabPageIndicatorAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            //新建一个Fragment来展示ViewPager item的内容,并传递参数            Fragment fragment = new  ItemFragment();              Bundle args = new Bundle();              args.putString("arg", TITLE[position]);              fragment.setArguments(args);                          return fragment;        }        @Override        public CharSequence getPageTitle(int position) {            return TITLE[position%TITLE.length ];   // 取数组里面的值 最为title        }        @Override        public int getCount() {            return TITLE.length;        }    }

Fragment

public class ItemFragment extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {                View contextView = inflater.inflate(R.layout.fragment_item, container, false);                       TextView mTextView = (TextView) contextView.findViewById(R.id.textview);                //获取Activity传递过来的参数        Bundle mBundle = getArguments();        String title = mBundle.getString("arg");        mTextView.setText(title);            return contextView;    }    @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);    }}

 

 

转载于:https://www.cnblogs.com/java-g/p/4149031.html

你可能感兴趣的文章
QML学习笔记之一
查看>>
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
IOS-图片操作集合
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>