【Android界面实现】使用PagerTabStrip实现有滑动标签的Viewpager
2024-08-22 11:36:27
在ViewPager这样的能够滑动的控件上,总是有非常多的文章能够做。上次的文章,我们实现了一个自己定义的ViewPager的指示器,这篇文章,我们主要是想利用Android自带的控件,实现一个指示器,这个控件,就是support-v4包里面的PagerTabStrip控件。
首先,我们先看一下实现效果,大饱眼福。
能够看到,效果实现的也是非常棒,比之前自己定义的标签指示器更加的流畅。以下,简介一下PagerTabStrip和它的使用。
PagerTabStrip是v4支持包里面的类,是ViewPager专用的类。不能在其它地方使用。在使用的时候,我们仅仅须要在ViewPager的布局里面声明就可以。
如以下的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:orientation="vertical" > <android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" > <android.support.v4.view.PagerTabStrip
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="@android:color/holo_blue_light"
android:textColor="@android:color/white" />
</android.support.v4.view.ViewPager> </LinearLayout>
我们能够设置layout_gravity属性,比方top或者是bottom,来控制显示的位置。
除此之外,不须要进行其它设置。
剩下的,就是我们须要在代码里面实现的了。
import java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager; public class PagerTabStripActivity extends FragmentActivity { private List<Fragment> fragments;
private ViewPager viewPager;
private List<String> titleList; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
} private void initView() {
viewPager = (ViewPager) findViewById(R.id.viewPager); titleList = new ArrayList<String>();
titleList.add("最新推荐");
titleList.add("游戏娱乐");
titleList.add("影音视频"); fragments = new ArrayList<Fragment>();
fragments.add(new MyFragment(android.R.color.holo_green_light));
fragments.add(new MyFragment(android.R.color.holo_orange_light));
fragments.add(new MyFragment(android.R.color.holo_red_light)); FragmentPagerAdapter adapter = new FragmentPagerAdapter(
getSupportFragmentManager()) { @Override
public int getCount() {
return 3;
} @Override
public Fragment getItem(int position) {
return fragments.get(position);
} @Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
} }; viewPager.setAdapter(adapter); }
}
在上面的代码里面,展现了我们怎样控制标题的文字。我们仅仅须要重写getPagerTitle方法就可以。假设不想要以下的指示器。把PagerTabStrip换成PagerTitlestrip就可以。能够把剩下的。就交给伟大的Android系统去做吧!
最新文章
- [LeetCode] Sort List 链表排序
- bzoj4008
- Python几个算法实现
- Android捕获崩溃异常
- build path--use as source folder 应用
- python应用部署--flask
- ASP.NET Core 依赖注入(DI)简介
- 谁说 JavaScript 简单的?
- 唱吧DevOps的落地,微服务CI/CD的范本技术解读
- Vivado如何使用命令行创建工程
- shell脚本-2
- Rocket Typist for Mac(增强型文本快速输入工具)破解版安装
- 函数使用二:采购申请BAPI_PR_CREATE
- tp5 excel导出类
- [转]Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数
- Python 核心编程
- Javassist简介
- MySQL主从复制状态及数据一致性监测工具
- 为MarS Board安装无线网卡Linux驱动
- SpringBoot学习:添加JSP支持
热门文章
- [Asp.net core]使用Polly网络请求异常重试
- mount.nfs: access denied by server while mounting <;SERVER IP>;:<;SERVER PATH>;
- android 工具类 DateUtil
- java初始化ArrayList
- OPTAUTH 两步验证详解
- 数据更新后让ListView自动滚动到底部
- TextView字体,行距,html格式,超链接,对大长度的设定
- Spring data jpa Specification查询关于日期的范围搜索
- Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null
- 【BLE】CC2541之发现服务与特征值