package com.jcdh.jcli.activitytabswitch;
//ViewPager + Fragment + FragmentPagerAdapter
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
public class MainActivity extends FragmentActivity implements View.OnClickListener,
ViewPager.OnPageChangeListener {
// 三个textview
private TextView tab1Tv, tab2Tv, tab3Tv;
// 指示器
private ImageView cursorImg;
// viewpager
private ViewPager viewPager;
// fragment对象集合
private ArrayList<Fragment> fragmentsList;
// 记录当前选中的tab的index
private int currentIndex = 0;
// 指示器的偏移量
private int offset = 0;
// 左margin
private int leftMargin = 0;
// 屏幕宽度
private int screenWidth = 0;
// 屏幕宽度的三分之一
private int screen1_3;
//
private LinearLayout.LayoutParams lp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
/**
* 初始化操作
*/
private void init() {
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
screenWidth = dm.widthPixels;
screen1_3 = screenWidth / 3;
cursorImg = (ImageView) findViewById(R.id.cursor);
lp = (LinearLayout.LayoutParams) cursorImg.getLayoutParams();
leftMargin = lp.leftMargin;
tab1Tv = (TextView) findViewById(R.id.tab1_tv);
tab2Tv = (TextView) findViewById(R.id.tab2_tv);
tab3Tv = (TextView) findViewById(R.id.tab3_tv);
//
tab1Tv.setOnClickListener(this);
tab2Tv.setOnClickListener(this);
tab3Tv.setOnClickListener(this);
initViewPager();
}
/**
* 初始化viewpager
*/
private void initViewPager() {
viewPager = (ViewPager) findViewById(R.id.third_vp);
fragmentsList = new ArrayList<Fragment>();
Fragment fragment = new Tab1Fragment();
fragmentsList.add(fragment);
fragment = new Tab2Fragment();
fragmentsList.add(fragment);
fragment = new Tab3Fragment();
fragmentsList.add(fragment);
viewPager.setAdapter(new FragmentAdapter(getSupportFragmentManager(),
fragmentsList));
viewPager.setCurrentItem(0);
viewPager.setOnPageChangeListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tab1_tv:
viewPager.setCurrentItem(0);
break;
case R.id.tab2_tv:
viewPager.setCurrentItem(1);
break;
case R.id.tab3_tv:
viewPager.setCurrentItem(2);
break;
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
offset = (screen1_3 - cursorImg.getLayoutParams().width) / 2;
Log.d("111", position + "--" + positionOffset + "--"
+ positionOffsetPixels);
final float scale = getResources().getDisplayMetrics().density;
if (position == 0) {// 0<->1
lp.leftMargin = (int) (positionOffsetPixels / 3) + offset;
} else if (position == 1) {// 1<->2
lp.leftMargin = (int) (positionOffsetPixels / 3) + screen1_3 +offset;
}
cursorImg.setLayoutParams(lp);
currentIndex = position;
}
@Override
public void onPageSelected(int arg0) {
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android Tab 选项卡 切换
共57个文件
xml:23个
java:7个
png:6个
4星 · 超过85%的资源 需积分: 46 40 下载量 55 浏览量
2016-04-28
16:58:44
上传
评论
收藏 267KB ZIP 举报
温馨提示
Android Tab 选项卡 切换; 可以滑动切换,点击切换,带指示器;
资源推荐
资源详情
资源评论
收起资源包目录
ActivityTabSwitch.zip (57个子文件)
ActivityTabSwitch
gradlew.bat 2KB
gradlew 5KB
gradle.properties 872B
ActivityTabSwitch.iml 948B
.gradle
2.10
taskArtifacts
fileHashes.bin 110KB
cache.properties.lock 17B
taskArtifacts.bin 56KB
fileSnapshots.bin 663KB
cache.properties 31B
outputFileStates.bin 20KB
app
proguard-rules.pro 662B
src
test
java
com
jcdh
jcli
activitytabswitch
ExampleUnitTest.java 338B
androidTest
java
com
jcdh
jcli
activitytabswitch
ApplicationTest.java 374B
main
res
mipmap-xxxhdpi
ic_launcher.png 10KB
drawable
down_line.png 966B
mipmap-hdpi
ic_launcher.png 3KB
values
colors.xml 214B
strings.xml 83B
styles.xml 394B
dimens.xml 216B
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xhdpi
ic_launcher.png 5KB
layout
fragment_tab3.xml 286B
activity_main.xml 2KB
fragment_tab1.xml 286B
fragment_tab2.xml 286B
values-w820dp
dimens.xml 364B
java
com
jcdh
jcli
activitytabswitch
Tab2Fragment.java 531B
FragmentAdapter.java 586B
Tab1Fragment.java 529B
MainActivity.java 4KB
Tab3Fragment.java 531B
AndroidManifest.xml 690B
app.iml 9KB
.gitignore 8B
build
build.gradle 658B
libs
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 231B
.idea
gradle.xml 833B
runConfigurations.xml 564B
misc.xml 3KB
.name 17B
copyright
profiles_settings.xml 76B
modules.xml 371B
encodings.xml 159B
compiler.xml 686B
workspace.xml 137KB
libraries
support_v4_22_2_1.xml 729B
hamcrest_core_1_3.xml 526B
junit_4_12.xml 477B
appcompat_v7_22_2_1.xml 585B
support_annotations_22_2_1.xml 495B
.gitignore 105B
local.properties 428B
settings.gradle 16B
build
build.gradle 528B
共 57 条
- 1
资源评论
- 苦逼的IT程序员2018-04-10不咋地,不好,别用
- 帅毛2018-02-24初学可以用
恋恋西风
- 粉丝: 9760
- 资源: 122
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功